1
如何從iOS中的'Modulus'和'Exponent'創建RSA加密公鑰? 我從鑰匙串創建了公鑰。是否可以從字符串'Modulus'和'Exponent'的值?RSA加密公鑰?
如何從iOS中的'Modulus'和'Exponent'創建RSA加密公鑰? 我從鑰匙串創建了公鑰。是否可以從字符串'Modulus'和'Exponent'的值?RSA加密公鑰?
看到這個答案在這裏
https://stackoverflow.com/a/10643894/584616
https://github.com/StCredZero/SCZ-BasicEncodingRules-iOS
實現利用指數,使RSA密鑰導入到iOS 鑰匙串。代碼以ARC爲目標iOS 5。
假設您已經有一個模數和指數,從 一個RSA公共密鑰作爲名爲pubKeyModData和 pubKeyModData的變量中的NSData。然後,下面的代碼將創建一個NSData,其中包含RSA 公鑰,然後您可以將其插入到iOS或OS X鑰匙串中。
NSMutableArray *testArray = [[NSMutableArray alloc] init];
[testArray addObject:pubKeyModData];
[testArray addObject:pubKeyExpData];
NSData *testPubKey = [testArray berData];
這將允許你存儲使用addPeerPublicKey的關鍵在於:從SecKeyWrapper在蘋果CryptoExercise實例方法:keyBits。或者,從低級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);
什麼是輸入NSData對象pubKeyModData和pubKeyExpData的格式?他們應該是base64 – prodos
編碼格式是NSUTF8StringEncoding – Luke