github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/cry/rsa_test.go (about) 1 package cry_test 2 3 import ( 4 "testing" 5 6 cry "github.com/bingoohuang/gg/pkg/cry" 7 ) 8 9 // https://golang.org/src/crypto/tls/generate_cert.go 10 11 func TestRSAPemTools(t *testing.T) { 12 // Create the key pair. 13 privateKey, publicKey := cry.GenerateKeyPair(2048) 14 15 // Export the keys as PEM. 16 privateKeyAsPEM := cry.ExportPrivateKey(privateKey) 17 publicKeyAsPEM := cry.ExportPublicKey(publicKey) 18 19 // Import the keys from PEM. 20 privateKeyFromPEM, _ := cry.ParsePrivateKey(privateKeyAsPEM) 21 publicKeyFromPEM, _ := cry.ParsePublicKey(publicKeyAsPEM) 22 23 // Export the imported keys as PEM. 24 privateKeyParsedAsPEM := cry.ExportPrivateKey(privateKeyFromPEM) 25 publicKeyParsedAsPEM := cry.ExportPublicKey(publicKeyFromPEM) 26 27 // Test if the exported/imported keys match the original keys. 28 if string(privateKeyAsPEM) != string(privateKeyParsedAsPEM) || 29 string(publicKeyAsPEM) != string(publicKeyParsedAsPEM) { 30 t.Error("Export and Import did not result in same Keys") 31 } 32 }