0
0
Fork 0

add marshal support

This commit is contained in:
Gibheer 2015-02-18 21:49:07 +01:00
parent 018086528a
commit 53be920308
1 changed files with 6 additions and 3 deletions

9
rsa.go
View File

@ -5,6 +5,7 @@ import (
"crypto/rand" "crypto/rand"
"crypto/rsa" "crypto/rsa"
"crypto/x509" "crypto/x509"
"encoding/pem"
"errors" "errors"
) )
@ -18,7 +19,7 @@ type (
} }
RsaPublicKey struct { RsaPublicKey struct {
public_key rsa.PublicKey public_key *rsa.PublicKey
} }
) )
@ -37,7 +38,7 @@ func LoadPrivateKeyRsa(raw []byte) (*RsaPrivateKey, error) {
} }
func (pr *RsaPrivateKey) Public() PublicKey { func (pr *RsaPrivateKey) Public() PublicKey {
return &RsaPublicKey{pr.private_key.Public().(rsa.PublicKey)} return &RsaPublicKey{pr.private_key.Public().(*rsa.PublicKey)}
} }
func (pr RsaPrivateKey) Sign(message []byte) ([]byte, error) { func (pr RsaPrivateKey) Sign(message []byte) ([]byte, error) {
@ -50,7 +51,9 @@ func (pr RsaPrivateKey) privateKey() crypto.PrivateKey {
} }
func (pr RsaPrivateKey) MarshalPem() (marshalledPemBlock, error) { func (pr RsaPrivateKey) MarshalPem() (marshalledPemBlock, error) {
return nil, errors.New("not implemented yet!") asn1 := x509.MarshalPKCS1PrivateKey(pr.private_key)
pem_block := pem.Block{Type: PemLabelRsa, Bytes: asn1}
return pem.EncodeToMemory(&pem_block), nil
} }
func (pu *RsaPublicKey) MarshalPem() (marshalledPemBlock, error) { func (pu *RsaPublicKey) MarshalPem() (marshalledPemBlock, error) {