我想與基於Java的服務器或Android設備共享在iPhone/iPad上生成的公鑰。在Java端(服務器或Android),我想在iOS上使用java.security
和libcommonCrypto
(SecKeyRef的東西)。iOS和Java之間的公鑰交換
我已經得到了一切工作,除了這兩個平臺之間的公鑰交換。通過使用SecItemCopyMatching
我只能將公鑰導出爲某種格式,然後是Apple所不支持的任何格式。使用Java,我可以將公鑰作爲X509證書(通過java.security.X509EncodedKeySpec
)或作爲模塊和指數(通過java.security.RSAPublicKeySpec
)加載。
現在我需要知道如何導出SecKeyRef
作爲X509證書或(我猜是更簡單的解決方案)從中獲取模塊和指數。而且我也需要倒退。
這裏是從SecKeyRef
加載並編碼以BASE64一些樣品公鑰:
MIGJAoGBAMYgXP6rvD/Y8F0VQE0HvxpVnnOxXYl5TDlOfW/leyrCLWGWg9Jp+Tl9dYvK/zWgNpoEfFzMVRpUk9UHcIaDWHW3g0BpS2MVC3Vs/0e2eu6S2WMGHpzqcJB51jJRbnqXQ23nVKC2YE520Po3EvFyTr8MlFJqTCJrovgc7fze4RI5AgMBAAE=