ios - 椭圆曲线加密的填充类型是什么

标签 ios objective-c encryption elliptic-curve

SecKeyGeneratePair之后对于ECC,我尝试用公钥加密明文。 SecKeyEncrypt返回 -4(errSec 未实现)。我不确定填充类型是否正确。我尝试了 xcode 中的所有类型,但它们都不起作用。有人可以解释一下为什么SecKeyEncrypt返回-4?

(NSData *)encrypt:(NSString *)plainTextString key:(SecKeyRef)publicKey {

    NSData *data = [plainTextString dataUsingEncoding:NSUTF8StringEncoding];

    size_t encryptedDataLength = SecKeyGetBlockSize(publicKey);

    NSMutableData *encryptedData = [[NSMutableData alloc]
                                    initWithLength:encryptedDataLength];

    OSStatus err = SecKeyEncrypt(publicKey,
                                 kSecPaddingOAEP,
                                 [data bytes],
                                 [data length],
                                 [encryptedData mutableBytes],
                                 &encryptedDataLength);
    NSLog(@"errEXX:  %ld", err);

    [encryptedData setLength:encryptedDataLength];


    return encryptedData;
}

最佳答案

Apple 的实现仅支持 ECDSA,它可用于签名但不能用于加密。有关使用其他方案使用椭圆曲线进行加密的信息,请参阅 Is it possible to use elliptic curve cryptography for encrypting data?

关于ios - 椭圆曲线加密的填充类型是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21320363/

相关文章:

ios - 如何以编程方式创建和填充嵌套的 UITableViewControllers?

ios - 当我的摄像头打开时检测人脸

Java AES : No installed provider supports this key: javax. crypto.spec.SecretKeySpec

c# - 在 .NET 中以编程方式加密配置文件

ios - 一个棘手的 Objective-C block 行为

ios - 用于使用 Makefile 的第三方库的 CocoaPods

ios - 过滤字符串数组,包括 "like"条件

ios - NSMutableDictionary 的 NSMutableArray 不显示数据

ios - UIPageviewcontroller 过渡样式滚动连续

java - Java 中用于 C# 构造的加密/解密等价物