aboutsummaryrefslogtreecommitdiff
path: root/ecdsa.go
diff options
context:
space:
mode:
authorGibheer <gibheer+git@zero-knowledge.org>2017-05-12 22:19:25 +0200
committerGibheer <gibheer+git@zero-knowledge.org>2017-05-12 22:19:25 +0200
commite95929ed2641bf6548aada92d9d17a3441f19e2b (patch)
treec97488fbb3f89d313d452d74de635665f092be0e /ecdsa.go
parentb6c44317f540dac8763e720767b0e73940a0b6c5 (diff)
Add ToPem() to public keys
This was missing before from all public keys.
Diffstat (limited to 'ecdsa.go')
-rw-r--r--ecdsa.go16
1 files changed, 12 insertions, 4 deletions
diff --git a/ecdsa.go b/ecdsa.go
index 8bf432d..4202bd6 100644
--- a/ecdsa.go
+++ b/ecdsa.go
@@ -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