rsa-encrypted.go 684 B

12345678910111213141516171819202122232425262728293031
  1. package encrypter
  2. import (
  3. "crypto/x509"
  4. "encoding/base64"
  5. )
  6. // EncryptedPrivateKey type
  7. type EncryptedPrivateKey []byte
  8. // DecryptKey func
  9. func (s *EncryptedPrivateKey) DecryptKey(key *PrivateKey) (*PrivateKey, error) {
  10. bb, err := key.Decrypt(([]byte)(*s))
  11. if err != nil {
  12. return nil, err
  13. }
  14. k, err := x509.ParsePKCS1PrivateKey(bb)
  15. if err != nil {
  16. return nil, err
  17. }
  18. return (*PrivateKey)(k), nil
  19. }
  20. // MarshalJSON func
  21. func (s *EncryptedPrivateKey) MarshalJSON() ([]byte, error) {
  22. return []byte("\"" + base64.RawURLEncoding.EncodeToString(([]byte)(*s)) + "\""), nil
  23. }
  24. func (s *EncryptedPrivateKey) String() string {
  25. return base64.RawURLEncoding.EncodeToString(*s)
  26. }