diff options
| author | ebiggers <ebiggers@google.com> | 2020-01-22 19:16:20 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-22 19:16:20 -0800 |
| commit | 303616dc52e2b1e71883417a291f07c59025215d (patch) | |
| tree | 7cbace927ccef0392706fff52d1a56cb906f52ee /crypto/key.go | |
| parent | 059482129c5fdafebc582887a4ae4ef80988b708 (diff) | |
| parent | 8cd1b3ba2e7a12cd68e2dfd0cbb5ec09ff92783b (diff) | |
Merge pull request #167 from ebiggers/recovery-passphrase
Automatically generate recovery passphrase when useful
Diffstat (limited to 'crypto/key.go')
| -rw-r--r-- | crypto/key.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/crypto/key.go b/crypto/key.go index 2220652..77adc95 100644 --- a/crypto/key.go +++ b/crypto/key.go @@ -195,6 +195,16 @@ func (key *Key) UnsafeToCString() unsafe.Pointer { return data } +// Clone creates a key as a copy of another one. +func (key *Key) Clone() (*Key, error) { + newKey, err := NewBlankKey(key.Len()) + if err != nil { + return nil, err + } + copy(newKey.data, key.data) + return newKey, nil +} + // NewKeyFromCString creates of a copy of some C string's data in a key. Note // that the original C string is not modified at all, so steps must be taken to // ensure that this original copy is secured. |