package edgeencrypt import ( "crypto/rand" "crypto/rsa" "testing" "github.com/golang-jwt/jwt" ) func TestRSAKeys(t *testing.T) { privateKey, err := rsa.GenerateKey(rand.Reader, RSA2048) if err != nil { t.Fatalf("failed to generate private key: %v", err) } publicKey := &privateKey.PublicKey pkString := ConvertRSAPrivateKeyToPEM(privateKey) pubKeyString, err := ConvertRSAPublicKeyToPEM(publicKey) if err != nil { t.Fatalf("failed to convert public key to pem: %v", err) } pk, err := jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString)) if err != nil { t.Fatalf("failed to parse private key from pem: %v", err) } if pk.D.Cmp(privateKey.D) != 0 { t.Fatalf("private keys do not match") } pubKey, err := jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString)) if err != nil { t.Fatalf("failed to parse public key from pem: %v", err) } if pubKey.N.Cmp(publicKey.N) != 0 { t.Fatalf("public keys do not match") } } func TestValidRandomRSAKeys(t *testing.T) { pkString, pubKeyString, err := GenerateRandomRSAKeyPair() if err != nil { t.Fatalf("failed to generate random RSA key pair: %v", err) } _, err = jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString)) if err != nil { t.Fatalf("failed to parse private key from pem: %v", err) } _, err = jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString)) if err != nil { t.Fatalf("failed to parse public key from pem: %v", err) } }