func (n naclBoxSecretKey) Box( receiver saltpack.BoxPublicKey, nonce *saltpack.Nonce, msg []byte) []byte { ret := box.Seal([]byte{}, msg, (*[24]byte)(nonce), (*[32]byte)(receiver.ToRawBoxKeyPointer()), (*[32]byte)(n.Private)) return ret }
func BoxPublicKeyToKeybaseKID(k saltpack.BoxPublicKey) (ret keybase1.KID) { if k == nil { return ret } p := k.ToKID() return keybase1.KIDFromRawKey(p, KIDNaclDH) }
// Unbox runs the NaCl unbox operation on the given ciphertext and nonce, // using the receiver as the secret key. func (k SecretKey) Unbox(sender saltpack.BoxPublicKey, nonce *saltpack.Nonce, msg []byte) ([]byte, error) { ret, ok := box.Open([]byte{}, msg, (*[24]byte)(nonce), (*[32]byte)(sender.ToRawBoxKeyPointer()), (*[32]byte)(&k.sec)) if !ok { return nil, saltpack.ErrDecryptionFailed } return ret, nil }
func (n naclBoxSecretKey) Precompute( sender saltpack.BoxPublicKey) saltpack.BoxPrecomputedSharedKey { var res naclBoxPrecomputedSharedKey box.Precompute((*[32]byte)(&res), (*[32]byte)(sender.ToRawBoxKeyPointer()), (*[32]byte)(n.Private)) return res }
func (n naclBoxSecretKey) Unbox( sender saltpack.BoxPublicKey, nonce *saltpack.Nonce, msg []byte) ( []byte, error) { ret, ok := box.Open([]byte{}, msg, (*[24]byte)(nonce), (*[32]byte)(sender.ToRawBoxKeyPointer()), (*[32]byte)(n.Private)) if !ok { return nil, DecryptionError{} } return ret, nil }
// Precompute computes a shared key with the passed public key. func (k SecretKey) Precompute(sender saltpack.BoxPublicKey) saltpack.BoxPrecomputedSharedKey { var res PrecomputedSharedKey box.Precompute((*[32]byte)(&res), (*[32]byte)(sender.ToRawBoxKeyPointer()), (*[32]byte)(&k.sec)) return res }