RSA加密没有der文件

时间:2014-05-28 21:41:27

标签: ios encryption

我尝试使用不能包含应用包的静态库进行RSA加密,这意味着我无法包含public_key.der文件。

因此,我尝试将.der文件信息硬编码到RSA类中的字节数组中并从中生成加密密钥,但每当我调用SecCertificateCreateWithData时,我都会得到nil 1}}结果。

字节数组:

const char bytes[] = "3082 02b0 3082 0219 a003 0201 0202 0900 f4da 4db7 a151 5877 300d 0609 2a86 4886 f70d 0101...9aa2";

然后我从中创建NSData并尝试创建证书:

NSData *publicKeyFileContent = [NSData dataWithBytes:bytes length:sizeof(bytes)];
    if (publicKeyFileContent == nil) {
        NSLog(@"%s Could not read public key", __PRETTY_FUNCTION__);
        return nil;
    }
    certificate = SecCertificateCreateWithData(kCFAllocatorDefault, ( __bridge CFDataRef)publicKeyFileContent);
    if (certificate == nil) {
        NSLog(@"%s Could not generate certificate", __PRETTY_FUNCTION__);
        return nil;
    }

1 个答案:

答案 0 :(得分:1)

您使用的字节是密钥的人类可读表示,而不是密钥本身。

正确的密钥数据如下所示:

const char bytes[] = {
    0x30, 0x82, 0x02, 0xb0, 0x30, 0x82, 0x02, 0x19, ...
};

(比较你得到的字符串表示中的第一个字节3082 02b0 3082 0219。)