如何使用“ 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

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

将对称密钥存储在Java卡中

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使用存储在密钥库中的自定义密钥执行 AES 加密?

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

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

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    将对称密钥存储在Java卡中

  12. 12

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

  13. 13

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

  14. 14

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

  15. 15

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

  16. 16

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

  17. 17

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

  18. 18

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

  19. 19

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

  20. 20

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

  21. 21

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

  22. 22

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

  23. 23

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

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

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

  28. 28

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

  29. 29

    如何使用存储在密钥库中的自定义密钥执行 AES 加密?

热门标签

归档