Advertisement
Guest User

Untitled

a guest
May 11th, 2021
213
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.50 KB | None | 0 0
  1. // generate a fresh key each session
  2. pk, err := ecdsa.GenerateKey(ed448.Curve448(), rand.Reader)
  3.  
  4. // ...
  5.  
  6. // derive a shared secret for signed hashing
  7. // and a shared key for aes-256
  8. func deriveShared(pk *ecdsa.PrivateKey, pub ecdsa.PublicKey) (secret [64]byte, key [32]byte) {
  9.     s := func() [64]byte {
  10.         x, y := ed448.Curve448().ScalarMult(pub.X, pub.Y, pk.D.Bytes())
  11.         return sha3.Sum512(append(x.Bytes(), y.Bytes()...))
  12.     }()
  13.     k := func() [32]byte {
  14.         return sha3.Sum256(s[:])
  15.     }()
  16.     return s, k
  17. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement