Почему "out" нужен в golang .org / x / crypto / nacl / box - PullRequest
2 голосов
/ 30 марта 2020

Я начал использовать пакет в Go и немного запутался в функции печати:

Согласно Документация :

/*Seal appends an encrypted and authenticated copy of message to out, which will be Overhead
bytes longer than the original and must not overlap it. The nonce must be unique for each
distinct message for a given pair of keys. */

func Seal(out, message []byte, nonce *[24]byte, peersPublicKey, privateKey *[32]byte) []byte

Но, как мы видим, забавный c уже возвращает байтовый массив, содержащий зашифрованное и аутентифицированное сообщение

В документации это забавное c используется таким образом :

var nonce [24]byte
if _, err := io.ReadFull(crypto_rand.Reader, nonce[:]); err != nil {
    panic(err)
}

msg := []byte("Alas, poor Yorick! I knew him, Horatio")
// This encrypts msg and appends the result to the nonce.
encrypted := box.Seal(nonce[:], msg, &nonce, recipientPublicKey, senderPrivateKey)

Поэтому у меня есть несколько вопросов:

  • Зачем передавать значения внутри одноразового номера, поскольку одноразовый номер является 3-м аргументом?
  • Почему нужен "out"?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...