gpt4 book ai didi

带模数和指数的 iPhone RSA 算法

转载 作者:行者123 更新时间:2023-12-03 19:58:47 27 4
gpt4 key购买 nike

我有模数和指数。如何在 iPhone 上使用 RSA 算法对数据进行编码/解码?或者如何从模数和指数生成 DER 格式?

最佳答案

如果您想在 iPhone 上生成 DER 数据,我在 GitHub 上有代码可以让您执行此操作:

https://github.com/StCredZero/SCZ-BasicEncodingRules-iOS

SCZ-BasicEncodingRules-iOS

实现基本编码规则以支持将 RSA key 导入 iOS使用指数的钥匙串(keychain)。代码针对带有 ARC 的 iOS 5。

假设您已经有一个模数和指数RSA 公钥作为名为 pubKeyModData 的变量中的 NSData 和pubKeyModData。然后以下代码将创建一个包含该 RSA 的 NSData公钥,然后您可以将其插入 iOS 或 OS X 钥匙串(keychain)中。

NSMutableArray *testArray = [[NSMutableArray alloc] init];
[testArray addObject:pubKeyModData];
[testArray addObject:pubKeyExpData];
NSData *testPubKey = [testArray berData];

这将允许您使用 Apple CryptoExercise 示例中 SecKeyWrapper 的 addPeerPublicKey:keyBits: 方法来存储 key 。或者,从底层API的角度来看,您可以使用SecItemAdd()。

NSString * peerName = @"Test Public Key";

NSData * peerTag =
[[NSData alloc]
initWithBytes:(const void *)[peerName UTF8String]
length:[peerName length]];

NSMutableDictionary * peerPublicKeyAttr = [[NSMutableDictionary alloc] init];

[peerPublicKeyAttr
setObject:(__bridge id)kSecClassKey
forKey:(__bridge id)kSecClass];
[peerPublicKeyAttr
setObject:(__bridge id)kSecAttrKeyTypeRSA
forKey:(__bridge id)kSecAttrKeyType];
[peerPublicKeyAttr
setObject:peerTag
forKey:(__bridge id)kSecAttrApplicationTag];
[peerPublicKeyAttr
setObject:testPubKey
forKey:(__bridge id)kSecValueData];
[peerPublicKeyAttr
setObject:[NSNumber numberWithBool:YES]
forKey:(__bridge id)kSecReturnPersistentRef];

sanityCheck = SecItemAdd((__bridge CFDictionaryRef) peerPublicKeyAttr, (CFTypeRef *)&persistPeer);

关于带模数和指数的 iPhone RSA 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6665832/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com