公開鍵 (RSA) を文字列として持っています。このキーを使用して秘密コードを作成したいのですが、暗号化されていない秘密コードが「TEST TEST」であり、qoutes がないとします。
これはどのように達成できますか?つまり、次のことを試しましたが、nimbus-jose-jwt
ライブラリを使用した公開鍵文字列から Key オブジェクトを作成することに固執しました。しかし、次のコードでは RSA 公開鍵オブジェクトを作成できませんでした
// Create the header
val header = JWEHeader(JWEAlgorithm.RSA1_5, EncryptionMethod.A256CBC_HS512)
// Set the plain text
val payload = Payload(decryptedText)
// Create the JWE object and encrypt it
val jweObject = JWEObject(header, payload)
jweObject.encrypt(JWEEncrypter)
// Serialise to compact JOSE form...
val actual = jweObject.serialize()
また、同じ名前の別のライブラリを使用しましorg.bitbucket.b_c:jose4j
たが、取得した公開鍵文字列から公開鍵オブジェクトを正常に作成できませんでした。
これは私が使用したコードスニペットですが、私が望むものを達成できず、TEST TESTを正しく暗号化することができませんでした.
val jwe = JsonWebEncryption()
jwe.payload = decryptedText
jwe.algorithmHeaderValue = KeyManagementAlgorithmIdentifiers.RSA1_5
jwe.encryptionMethodHeaderParameter = ContentEncryptionAlgorithmIdentifiers.AES_256_CBC_HMAC_SHA_512
jwe.key = stringToRSAPublicKey(publicKey)
val serializedJwe = jwe.compactSerialization
公開鍵の文字列は次のとおりです
"MIIBITANBgkqhkiG9w0BAQEFAAOCAQ4AMIIBCQKCAQBGvNkLnetAtR+QSttxIkQ9" +
"mH7pbbjl2UqRu5UDO9kuEiYh4b70JxPN8v1exkuW/FLmxKjdRVq7gNWstumIGm1W" +
"8cf4RtFj88pvZUaVg6NZ21iLAIHtnhb2D/4eBOI8HXdhdZ+bEd+BJbu1rlqm0Rs1" +
"1jzYukR35/n44me3fbP9DH3JmSM8s0F8RmlIY0VqDnSOCOazNupVtJQFWeDIyfcV" +
"/coW+RRrFq5KNwnHPxdl5o3PR3OZgV27H/eBuKxIEGvjBUYchSjAAdJYAnfISvcd" +
"huLeYocZGi5WHEswrQBoUG8GflcdMJTvtTL5PtJG2WdcurIQA6iD2fSdBgQpARJF" +
"AgMBAAE=
簡単に言えば、iOS コードから取得したこれを Android の同等のコードに変換する必要があります。