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/rsa"
"crypto/x509"
"encoding/pem"
"errors"
)
@ -18,7 +19,7 @@ type (
}
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 {
return &RsaPublicKey{pr.private_key.Public().(rsa.PublicKey)}
return &RsaPublicKey{pr.private_key.Public().(*rsa.PublicKey)}
}
func (pr RsaPrivateKey) Sign(message []byte) ([]byte, error) {
@ -50,7 +51,9 @@ func (pr RsaPrivateKey) privateKey() crypto.PrivateKey {
}
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) {