如何使用“ SecItemAdd”在OS X中存储对称密钥?

欧洲bertics

我想在OS X的钥匙串中存储一个对称密钥。我读了Apple DevDocs的资料,SecItemAdd以便执行此操作。我还阅读了CryptoExercise,但没有针对我的任何解决方案。
但是,当我这样做时,我总是得到OSStatus

errSecNoSuchAttr (-25303)

代码片段如下:

//Labels and app tags
NSString *label = @"My Testkey";
NSData * peerTag = [[NSData alloc] initWithBytes:(const void *)[label UTF8String] length:[label length]];

// Generating testkey
NSMutableData *key = [NSMutableData dataWithLength:kCCKeySizeAES128];
SecRandomCopyBytes(kSecRandomDefault, kCCKeySizeAES128, [key mutableBytes]);

// Setting dictionary for adding to keychain
NSMutableDictionary *dict = [[NSMutableDictionary alloc] init];
[dict setObject:(id)kSecClassKey forKey:(id)kSecClass];
[dict setObject:(id)kSecAttrKeyTypeAES forKey:(id)kSecAttrKeyType];
[dict setObject:kSecAttrKeyClassSymmetric forKey:(id)kSecAttrKeyClass];
[dict setObject:peerTag forKey:(id)kSecAttrApplicationTag];
[dict setObject:[NSNumber numberWithUnsignedInteger:kCCKeySizeAES128] forKey:(id)kSecAttrKeySizeInBits];
[dict setObject:key forKey:(id)kSecValueData];

// Adding to keychain
OSStatus osstatus = SecItemAdd((__bridge CFDictionaryRef)dict, NULL);

//Just give me a result (in this case a label in the app)
[[self statusField] setStringValue:[NSString stringWithFormat:@"Key: %@\nStatus: %@", [key base64EncodedStringWithOptions:NSDataBase64Encoding64CharacterLineLength], SecCopyErrorMessageString(osstatus, NULL)]];

我做错了什么?任何帮助将不胜感激。谢谢。

w

我做错了什么?任何帮助将不胜感激。

似乎kSecAttrKeyClassSymmetric不受支持。通过Google搜索Apple源代码(SecAttrKeyClassSymmetric网站:opensource.apple.com),您似乎从SecKey.c中获得了NULL

case 2: // kSecAttrKeyClassSymmetric
    secwarning("Unsupported symmetric key type: %@", ktype);
    ref = NULL;
    break;
...

基本编码并使用kSecClassGenericPassword或者,尝试将其填充到没有编码的钥匙串中。数组是一个数组。

请记住,我可能读错了那些资料。我没有阅读很多Apple源代码(我尽量避免使用Apple)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

如何检查谁有权访问SQL Server中的对称密钥

来自分类Dev

如何使用存储在智能卡中的密钥生成CSR

来自分类Dev

如何在Java PKCS12密钥库中存储对称密钥

来自分类Dev

如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

来自分类Dev

如何使用AppleScript在OS X中自定义通知

来自分类Dev

如何在Mac OS X Yosemite上导入RSA密钥?

来自分类Dev

使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

使用RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一密钥容器中?

来自分类Dev

使用加密模块从node.js中的Curve25519(或X25519)非对称密钥对生成共享秘密密钥

来自分类Dev

如何使用类似布尔型的方形对称numpy数组中的True值存储存储索引对?

来自分类Dev

使用12.x版Azure存储库使用密钥库解密Azure Blob存储中的Blob

来自分类Dev

如何将Mac OS X钥匙串与SSH密钥一起使用?

来自分类Dev

如果我的用于身份验证的SSH密钥不在.ssh中,那么该密钥存储在Mac OS X上呢?

来自分类Dev

在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

来自分类Dev

授予适当的权限以在存储的过程中使用对称密钥

来自分类Dev

如何使用密钥获取数据存储区中的数据

来自分类Dev

SSH使用外部存储中的密钥-权限?

来自分类Dev

如何在Windows中存储RSA密钥对?

来自分类Dev

如何在Java中以非对称加密生成密钥对?

来自分类Dev

使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

来自分类Dev

将对称密钥存储在Java卡中

来自分类Dev

在PHP中如何在没有硬编码密钥的情况下进行对称加密

来自分类Dev

如何在Android Keystore中存储对称密钥

来自分类Dev

由于指数大小有限,如何在 C# 中创建非对称密钥?

来自分类Dev

如何安全地存储对称密钥?我可以使用 pkcs12 来存储对称密钥吗?

来自分类Dev

生成对称密钥并存储在android密钥库中

Related 相关文章

  1. 1

    在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

  2. 2

    授予适当的权限以在存储的过程中使用对称密钥

  3. 3

    如何检查谁有权访问SQL Server中的对称密钥

  4. 4

    如何使用存储在智能卡中的密钥生成CSR

  5. 5

    如何在Java PKCS12密钥库中存储对称密钥

  6. 6

    如何使用PHP中的对称密钥算法对结果中没有元字符的数据进行加密

  7. 7

    如何使用AppleScript在OS X中自定义通知

  8. 8

    如何在Mac OS X Yosemite上导入RSA密钥?

  9. 9

    使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

  10. 10

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  11. 11

    使用RSACryptoServiceProvider,如何将密钥交换密钥和签名密钥存储在同一密钥容器中?

  12. 12

    使用加密模块从node.js中的Curve25519(或X25519)非对称密钥对生成共享秘密密钥

  13. 13

    如何使用类似布尔型的方形对称numpy数组中的True值存储存储索引对?

  14. 14

    使用12.x版Azure存储库使用密钥库解密Azure Blob存储中的Blob

  15. 15

    如何将Mac OS X钥匙串与SSH密钥一起使用?

  16. 16

    如果我的用于身份验证的SSH密钥不在.ssh中,那么该密钥存储在Mac OS X上呢?

  17. 17

    在OS X> = 10.9中不推荐使用CGDisplayIOServicePort,如何替换?

  18. 18

    授予适当的权限以在存储的过程中使用对称密钥

  19. 19

    如何使用密钥获取数据存储区中的数据

  20. 20

    SSH使用外部存储中的密钥-权限?

  21. 21

    如何在Windows中存储RSA密钥对?

  22. 22

    如何在Java中以非对称加密生成密钥对?

  23. 23

    使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

  24. 24

    将对称密钥存储在Java卡中

  25. 25

    在PHP中如何在没有硬编码密钥的情况下进行对称加密

  26. 26

    如何在Android Keystore中存储对称密钥

  27. 27

    由于指数大小有限,如何在 C# 中创建非对称密钥?

  28. 28

    如何安全地存储对称密钥?我可以使用 pkcs12 来存储对称密钥吗?

  29. 29

    生成对称密钥并存储在android密钥库中

热门标签

归档