github.com/cloudflare/circl@v1.5.0/pki/pki_test.go (about)

     1  package pki_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/cloudflare/circl/pki"
     7  	"github.com/cloudflare/circl/sign/schemes"
     8  )
     9  
    10  func TestPEM(t *testing.T) {
    11  	for _, scheme := range schemes.All() {
    12  		t.Run(scheme.Name(), func(t *testing.T) {
    13  			if scheme == nil {
    14  				t.Fatal()
    15  			}
    16  
    17  			_, ok := scheme.(pki.CertificateScheme)
    18  			if !ok {
    19  				return
    20  			}
    21  
    22  			pk, sk, err := scheme.GenerateKey()
    23  			if err != nil {
    24  				t.Fatal(err)
    25  			}
    26  
    27  			packedPk, err := pki.MarshalPEMPublicKey(pk)
    28  			if err != nil {
    29  				t.Fatal(err)
    30  			}
    31  
    32  			pk2, err := pki.UnmarshalPEMPublicKey(packedPk)
    33  			if err != nil {
    34  				t.Fatal(err)
    35  			}
    36  			if !pk.Equal(pk2) {
    37  				t.Fatal()
    38  			}
    39  
    40  			packedSk, err := pki.MarshalPEMPrivateKey(sk)
    41  			if err != nil {
    42  				t.Fatal(err)
    43  			}
    44  
    45  			sk2, err := pki.UnmarshalPEMPrivateKey(packedSk)
    46  			if err != nil {
    47  				t.Fatal(err)
    48  			}
    49  
    50  			if !sk.Equal(sk2) {
    51  				t.Fatal()
    52  			}
    53  		})
    54  	}
    55  }