diff options
author | Gibheer <gibheer+git@zero-knowledge.org> | 2017-05-12 22:19:25 +0200 |
---|---|---|
committer | Gibheer <gibheer+git@zero-knowledge.org> | 2017-05-12 22:19:25 +0200 |
commit | e95929ed2641bf6548aada92d9d17a3441f19e2b (patch) | |
tree | c97488fbb3f89d313d452d74de635665f092be0e /ecdsa.go | |
parent | b6c44317f540dac8763e720767b0e73940a0b6c5 (diff) |
Add ToPem() to public keys
This was missing before from all public keys.
Diffstat (limited to 'ecdsa.go')
-rw-r--r-- | ecdsa.go | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -108,15 +108,23 @@ func LoadPublicKeyEcdsa(raw []byte) (*EcdsaPublicKey, error) { return &EcdsaPublicKey{pub}, nil } +// ToPem returns the pem block of the public key. +func (pu *EcdsaPublicKey) ToPem() (pem.Block, error) { + asn1, err := x509.MarshalPKIXPublicKey(pu.public_key) + if err != nil { + return pem.Block{}, err + } + return pem.Block{Type: PemLabelPublic, Bytes: asn1}, nil +} + // This function implements the Pemmer interface to marshal the public key into // a pem block. func (pu *EcdsaPublicKey) MarshalPem() (io.WriterTo, error) { - asn1, err := x509.MarshalPKIXPublicKey(pu.public_key) - if err != nil { + if block, err := pu.ToPem(); err != nil { return nil, err + } else { + return marshalledPemBlock(pem.EncodeToMemory(&block)), nil } - pem_block := pem.Block{Type: PemLabelPublic, Bytes: asn1} - return marshalledPemBlock(pem.EncodeToMemory(&pem_block)), nil } // This function verifies a message using the public key, signature and hash |