- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在设备上使用 SecKeyGeneratePair()
在设备上生成了一个 RSA 对称 key 对。我有每个键的 SecKeyRef
结构指针。那么,如何将 SecKeyRef
保存到磁盘?甚至传输它(我也认为正确编码也存在问题)? Apple 的“证书、 key 和信任服务”指南说明
You can send your public key to anyone, who can then use it to encrypt data.
我特别想保存私钥;所以我可以在已部署的设备上使用它来解密使用公钥加密的数据。
附言我不介意每个键的结果数据是 DER 编码的 ASN.1 还是 base-64;我只需要弄清楚如何从 SecKeyRef
中提取 key 。我也很清楚 OS X 的 SecKeychainItemExport()
不存在。
最佳答案
啊,我自己找到了答案;您可以使用 SecItemCopyMatching()
获取公钥的字节数。
- (NSData *)getPublicKeyBits {
OSStatus sanityCheck = noErr;
NSData * publicKeyBits = nil;
NSMutableDictionary * queryPublicKey = [[NSMutableDictionary alloc] init];
// Set the public key query dictionary.
[queryPublicKey setObject:(id)kSecClassKey forKey:(id)kSecClass];
[queryPublicKey setObject:publicTag forKey:(id)kSecAttrApplicationTag];
[queryPublicKey setObject:(id)kSecAttrKeyTypeRSA forKey:(id)kSecAttrKeyType];
[queryPublicKey setObject:[NSNumber numberWithBool:YES] forKey:(id)kSecReturnData];
// Get the key bits.
sanityCheck = SecItemCopyMatching((CFDictionaryRef)queryPublicKey, (CFTypeRef *)&publicKeyBits);
if (sanityCheck != noErr)
{
publicKeyBits = nil;
}
[queryPublicKey release];
return publicKeyBits;
}
以上内容来自 Apple 的 CryptoExercise。不过不确定它是否适用于私钥。
关于iphone - 将 SecKeyRef 设备生成的公钥/私钥对保存在磁盘上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5988735/
我生成一个 RSA 公钥/私钥对,如下所示: CFDataRef privateTag; CFDataRef publicTag; SecKeyRef publicKey; SecKeyRef pri
我正在使用此代码:https://stackoverflow.com/a/19221754/849616 ,但对我来说并非一切都清楚。 我想使用公钥 NSString *pubKey = "1111"
我有一个 RSA key (对)表示为大整数模数和指数,需要用它们进行加密/解密。 我想出了如何使用 swift 在 iOS 中根据需要处理按键。 我的问题:有什么方法可以将模数/指数表示转换为标准的
这个问题在这里已经有了答案: Extracting a public key from key pair in key chain (2 个答案) 关闭 9 年前。 现在我的公钥有问题,我使用 Se
我有两个 key ,公钥和私钥,都存储在 SecKeyRef 变量中。为了简单起见,让我们从公共(public)的开始。我想做的是将它导出到一个 NSData 对象。为此,Apple 提供了一个几乎著
为了从 iPhone 发送和接收加密消息,我需要读取公钥(服务器的公钥)PEM 文件并创建一个 SecKeyRef(后来我什至可以将其存储在钥匙串(keychain)上,以免创建它)再次)。 这是我当
我用 SecKeyGeneratePair 生成了私钥和公钥我已经将 SecKeyRef 转换为 NSData size_t keySize = SecKeyGetBlockSize(publicKe
我需要使用公钥将用户密码加密为 base64 字符串。 公钥是一个 NSString。 是这样的: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCgWO7p1AvCa
我有一个从远程服务器收集的公钥,我想使用该公钥执行 RSA 加密。但问题是我将公钥数据作为缓冲区中的字节数组获取。我可以将它转换为 NSData 但我不能转换为 SecKeyRef 所以我可以继续加密
给定一个使用 SecItemImport 从 RSA 私钥加载的 SecKeyRef 有没有办法只为公钥获取或创建一个 SecKeyRef组件?在 OpenSSL 中,这可以通过将模数和公共(publ
我想通过将指数和模数作为私钥来解密 iPhone 上的 RSA 编码的 blob。在 Java 中(使用 javax.crypto),这可以通过如下代码轻松实现: // 1) key RSAPubli
我正在开发一个 iOS 应用程序,我得到一个 base64 编码的公钥,例如: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC3gn+tJ1+PbP0GHa6hmM35
我在设备上使用 SecKeyGeneratePair() 在设备上生成了一个 RSA 对称 key 对。我有每个键的 SecKeyRef 结构指针。那么,如何将 SecKeyRef 保存到磁盘?甚至传
任何人请帮助从指数和模数创建SecKeyRef作为我的公共(public)指数 = 010001和 公共(public)模数 =008903fb6d15f352ed3b45add3216f632f71
我需要将我的iPhone应用程序与系统集成,他们需要通过给定的公钥加密数据,有3个文件,3种不同的格式.xml .der和.pem,我研究并找到了一些关于从 DER/PEM 获取 SecKeyRef,
我想从从 OpenSSL 创建的 EC_KEY 导出公钥和私钥,并且我们知道 EC_KEY 保存 key 对,但 openssl 不兼容将 key 对存储到安全中飞地。因此,我想从 OpenSSL 创
在 Swift 中,我创建了一个 SecKeyRef通过调用对象 SecTrustCopyPublicKey在一些原始 X509 证书数据上。这就是这个 SecKeyRef 对象的样子。 Option
我需要一种干净的方法来提取我的服务器公钥并将其与本地数据进行比较,以防止将来过期/更新 key ,但我似乎无法获得 256 位 key 或表达它作为比较有用的数据... 这是我目前所拥有的... -(
我有一个 Base64 格式的 RSa publicKey 值,如何在不添加到 Keychain 的情况下转换为 SecKeyRef 对象 我可以将非 X509 格式的 RSA Raw 值添加到 Ke
我正在尝试使用 OSX 中的安全转换创建对称加密 key ,然后将该 key 保存到钥匙串(keychain)中。我能够创建一个工作 key 并将其保存到钥匙串(keychain)中,但是当我调用该
我是一名优秀的程序员,十分优秀!