SwiftyRSA icon indicating copy to clipboard operation
SwiftyRSA copied to clipboard

Exporting RSA public key in PKCS#1 format

Open optimusbits opened this issue 6 years ago • 0 comments

Certificates.zip

I use SwiftyRSA 1.4.0 (via Podfile). I create keys from attached certificates like:

            let privateKey = try PrivateKey(pemNamed: "priv")
            let publicKey = try PublicKey(pemNamed: "pub")

and I want export it in PKCS#1 format. When I print public key:

        print(try publicKey.pemString())

I get:

MIIBCgKCAQEArMn6cCuAdPodSr8WbiE7NQ9UYFBoLdLWZCf8/rnhcb7vJGI3/zFD7gBP2pwThhJaJrGBhVelaKZqVWVrqmPlIO0pTb0FbSR1nuYpEw2RQljFmaefnKH4AU42h1DCcwomQOFD9Ne4NSWryuuivDqzTAjDe4wJYL2mEmSxjkZ2RfD35V7eaipPlMemfyKTFm9rL8Y2KrOFIVx8PrQc3tItGonW1ISfrHSm/c332ZIK1byvU9YnFsdicr3N3RvA61jJnsLMtCpBxXwhbjfF5x216YNIn13sUlgvjjEnNYPCE5LthX248+lefsOBWeRcWuJN0LTabJYOgaOepnfn8uceuQIDAQAB

which is PKCS#8 format. Missing part of PKCS#1 is:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A

The whole part of PKCS#1 format should be look like:

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArMn6cCuAdPodSr8WbiE7NQ9UYFBoLdLWZCf8/rnhcb7vJGI3/zFD7gBP2pwThhJaJrGBhVelaKZqVWVrqmPlIO0pTb0FbSR1nuYpEw2RQljFmaefnKH4AU42h1DCcwomQOFD9Ne4NSWryuuivDqzTAjDe4wJYL2mEmSxjkZ2RfD35V7eaipPlMemfyKTFm9rL8Y2KrOFIVx8PrQc3tItGonW1ISfrHSm/c332ZIK1byvU9YnFsdicr3N3RvA61jJnsLMtCpBxXwhbjfF5x216YNIn13sUlgvjjEnNYPCE5LthX248+lefsOBWeRcWuJN0LTabJYOgaOepnfn8uceuQIDAQAB

Simillar issues were: https://stackoverflow.com/questions/8784905/command-line-tool-to-export-rsa-private-key-to-rsapublickey https://github.com/Brightspace/node-jwk-to-pem/pull/26

optimusbits avatar Sep 05 '18 13:09 optimusbits