...

Source file src/edge-infra.dev/pkg/edge/edgeencrypt/rsa_test.go

Documentation: edge-infra.dev/pkg/edge/edgeencrypt

     1  package edgeencrypt
     2  
     3  import (
     4  	"crypto/rand"
     5  	"crypto/rsa"
     6  	"testing"
     7  
     8  	"github.com/golang-jwt/jwt"
     9  )
    10  
    11  func TestRSAKeys(t *testing.T) {
    12  	privateKey, err := rsa.GenerateKey(rand.Reader, RSA2048)
    13  	if err != nil {
    14  		t.Fatalf("failed to generate private key: %v", err)
    15  	}
    16  	publicKey := &privateKey.PublicKey
    17  
    18  	pkString := ConvertRSAPrivateKeyToPEM(privateKey)
    19  
    20  	pubKeyString, err := ConvertRSAPublicKeyToPEM(publicKey)
    21  	if err != nil {
    22  		t.Fatalf("failed to convert public key to pem: %v", err)
    23  	}
    24  
    25  	pk, err := jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString))
    26  	if err != nil {
    27  		t.Fatalf("failed to parse private key from pem: %v", err)
    28  	}
    29  	if pk.D.Cmp(privateKey.D) != 0 {
    30  		t.Fatalf("private keys do not match")
    31  	}
    32  
    33  	pubKey, err := jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString))
    34  	if err != nil {
    35  		t.Fatalf("failed to parse public key from pem: %v", err)
    36  	}
    37  	if pubKey.N.Cmp(publicKey.N) != 0 {
    38  		t.Fatalf("public keys do not match")
    39  	}
    40  }
    41  
    42  func TestValidRandomRSAKeys(t *testing.T) {
    43  	pkString, pubKeyString, err := GenerateRandomRSAKeyPair()
    44  	if err != nil {
    45  		t.Fatalf("failed to generate random RSA key pair: %v", err)
    46  	}
    47  
    48  	_, err = jwt.ParseRSAPrivateKeyFromPEM([]byte(pkString))
    49  	if err != nil {
    50  		t.Fatalf("failed to parse private key from pem: %v", err)
    51  	}
    52  
    53  	_, err = jwt.ParseRSAPublicKeyFromPEM([]byte(pubKeyString))
    54  	if err != nil {
    55  		t.Fatalf("failed to parse public key from pem: %v", err)
    56  	}
    57  }
    58  

View as plain text