INNER CODE UNIT · Go
encryptWithPassword
volodymyrprokopyuk/go-blockchain · chain/account.go:151
func encryptWithPassword(msg, pass []byte) ([]byte, error) {
salt := make([]byte, encKeyLen)
_, err := rand.Read(salt)
if err != nil {
return nil, err
}
key := argon2.IDKey(pass, salt, 1, 256, 1, encKeyLen)
blk, err := aes.NewCipher(key)
if err != nil {
return nil, err
}
gcm, err := cipher.NewGCM(blk)
if err != nil {
return nil, err
}
nonce := make([]byte, gcm.NonceSize())
_, err = rand.Read(nonce)
if err != nil {