code: func derivedEphemeralKeyFromBoxKeys(public BoxPublicKey, private BoxSecretKey) *SymmetricKey {
  	sharedSecretBox := private.Box(public, nonceForDerivedSharedKey(), make([]byte, 32))
  	derivedKey, err := symmetricKeyFromSlice(sharedSecretBox[len(sharedSecretBox)-32:])
  	if err != nil {
  		panic(err) // should be statically impossible, if the slice above is the right length
  	}
  	return derivedKey
  }
docs: // Similar to the encryption format, we derive a symmetric key from our DH keys
  // (one of which is ephemeral) by encrypting 32 bytes of zeros. We could have
  // used crypto_box_beforenm directly instead, but that would be a slight abuse
  // of that function, and also we don't expect all NaCl/libsodium wrapper libs
  // to expose it. This key does *not* mix in the recipient index -- it will be
  // the same for two different recipients if they claim the same public key.