2011-07-12 8 views
3

モジュラスと指数を持っています。 iPhoneでRSA algotithmでデータをエンコード/デコードするにはどうすればよいですか?または、法と指数からDER形式を生成するにはどうしたらいいですか?モジュラスと指数付きiPhone RSAアルゴリズム

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

SCZ-BasicEncodingRules - iOSの基本符号化規則の

実装

:あなたはiPhone上でDERデータを生成する場合

答えて

2

、私はあなたがこれを行うようになるのGitHub上のコードを持っていますiOSへのRSA鍵のインポートを有効にする 指数を使用するKeyChain。コードはiOS 5とARCをターゲットにしています。

からmodulusと指数を既に持っていて、pubKeyModDataという名前の変数にNSDataとしてRSA公開鍵があり、 pubKeyModDataという変数があります。次に、次のコードはRSA 公開鍵を含むNSDataを作成し、iOSまたはOS X Keychainに挿入することができます。 keyBits:メソッドSecKeyWrapperからアップルCryptoExercise例で

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

これはaddPeerPublicKeyを使用してキーを格納することが可能になります。または、低レベルの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); 
関連する問題