summaryrefslogtreecommitdiffstats
path: root/external_libs/python/pyzmq-14.7.0/bundled/libsodium/src/libsodium/crypto_box/curve25519xsalsa20poly1305/ref/box_curve25519xsalsa20poly1305.c
blob: ebc208a3160a773b7693a559b5069549ace9d37f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include "api.h"
#include "utils.h"

int crypto_box(
  unsigned char *c,
  const unsigned char *m,unsigned long long mlen,
  const unsigned char *n,
  const unsigned char *pk,
  const unsigned char *sk
)
{
  unsigned char k[crypto_box_BEFORENMBYTES];
  int           ret;

  crypto_box_beforenm(k,pk,sk);
  ret = crypto_box_afternm(c,m,mlen,n,k);
  sodium_memzero(k, sizeof k);

  return ret;
}

int crypto_box_open(
  unsigned char *m,
  const unsigned char *c,unsigned long long clen,
  const unsigned char *n,
  const unsigned char *pk,
  const unsigned char *sk
)
{
  unsigned char k[crypto_box_BEFORENMBYTES];
  int           ret;

  crypto_box_beforenm(k,pk,sk);
  ret = crypto_box_open_afternm(m,c,clen,n,k);
  sodium_memzero(k, sizeof k);

  return ret;
}