Cocoa 環境で RSA 公開鍵の復号化に問題があります。public.pem のハッシュ、公開鍵を-----BEGIN PUBLIC KEY-----
ガード付きで暗号化しました (openssl によって生成)
NSData *encryptedData = base64dec(license);
NSString *publicKeyPath = [[NSBundle mainBundle] pathForResource:@"public" ofType:@"pem"];
NSData *publicKeyData = [NSData dataWithContentsOfFile:publicKeyPath];
SSCrypto *crypto = [[SSCrypto alloc] initWithPublicKey:publicKeyData];
[crypto setClearTextWithData:encryptedData];
[crypto verify];
NSString *verifiedKey = [crypto clearTextAsString];
しかしverifiedKey
、常にゼロです。SSCrypto は NSData を NSString に変換できないようです。実際にデータを復号化するにはどうすればよいですか?
このコードを使用して終了しました(base64デコードステップを排除するため)
[crypto setCipherTextFromBase64String:license];
NSString *verifiedKey = [crypto clearTextAsString];
ただしverifiedKey
、常に空の文字列です。どういう意味ですか?入力データは正しいようです。