我试图找出在 Objective-C 中使用 NaCl 库的正确方法是什么。密钥生成似乎很容易:
- (void) generateKeypair {
unsigned char pk[crypto_box_PUBLICKEYBYTES];
unsigned char sk[crypto_box_SECRETKEYBYTES];
sodium_init();
crypto_box_keypair(pk,sk);
self.publicKey = [NSData dataWithBytes:(const void *)pk
length:sizeof(unsigned char)*crypto_box_PUBLICKEYBYTES];
self.sekretKey = [NSData dataWithBytes:(const void *)sk
length:sizeof(unsigned char)*crypto_box_PUBLICKEYBYTES];
}
那很简单。但是有了这个crypto_box(c,m,mlen,n,pk,sk)
功能,我就混淆了填充,ZEROBYTES
以及如何管理对象所有权。如何为crypto_box(c,m,mlen,n,pk,sk)
和朋友构建一个简单的 Wrapper?