fetchOrGenerateKeys will either load or create a keypair if it doesn't exist
(privateKey, publicKey string)
| 109 | |
| 110 | // fetchOrGenerateKeys will either load or create a keypair if it doesn't exist |
| 111 | func (e *Encrypter) fetchOrGenerateKeys(privateKey, publicKey string) (*[32]byte, *[32]byte, error) { |
| 112 | key, err := e.fetchKey(privateKey) |
| 113 | if os.IsNotExist(err) { |
| 114 | return box.GenerateKey(rand.Reader) |
| 115 | } else if err != nil { |
| 116 | return nil, nil, err |
| 117 | } |
| 118 | |
| 119 | pub, err := e.fetchKey(publicKey) |
| 120 | if os.IsNotExist(err) { |
| 121 | return box.GenerateKey(rand.Reader) |
| 122 | } else if err != nil { |
| 123 | return nil, nil, err |
| 124 | } |
| 125 | return pub, key, nil |
| 126 | } |
| 127 | |
| 128 | // writeKey will write a key to disk in DER format (it's a standard pem key) |
| 129 | func (e *Encrypter) writeKey(key []byte, pemType, filename string) error { |
no test coverage detected