【发布时间】:2015-03-31 06:40:48
【问题描述】:
我能够导出在 iOS 中生成的公钥并将其转换为 base64:
var dataPtr:Unmanaged<AnyObject>?
let query: [String:AnyObject] = [
kSecClass: kSecClassKey,
kSecAttrApplicationTag: "com.example.site.public",
kSecReturnData: kCFBooleanTrue
]
let qResult = SecItemCopyMatching(query, &dataPtr)
// error handling with `qResult` ...
let publicKeyData = dataPtr!.takeRetainedValue() as NSData
// convert to Base64 string
let base64PublicKey = publicKeyData.base64EncodedStringWithOptions(nil)
我还能够将其发送到我的 LAMP 服务器。现在我想弄清楚如何将它用作那里的公钥。
我试过了:
$keydata = base64decode($_GET['base64PublicKey']);
$res = gnupg_init();
$info = gnupg_import($res,$keydata);
print_r($info);
这是正确的方向吗?我知道数据的大小是 270,not the same as block size of the key。我对 PKI 有点陌生,任何帮助将不胜感激。
【问题讨论】:
-
证书是DER编码的X.509格式?
-
我认为是这样,但我并不完全确定。这似乎表明:stackoverflow.com/questions/3840005/…