2 #define TEST_NAME "box_seal"
7 unsigned char pk
[crypto_box_PUBLICKEYBYTES
];
8 unsigned char sk
[crypto_box_SECRETKEYBYTES
];
15 crypto_box_keypair(pk
, sk
);
16 m_len
= (size_t) randombytes_uniform(1000);
17 c_len
= crypto_box_SEALBYTES
+ m_len
;
18 m
= (unsigned char *) sodium_malloc(m_len
);
19 m2
= (unsigned char *) sodium_malloc(m_len
);
20 c
= (unsigned char *) sodium_malloc(c_len
);
21 randombytes_buf(m
, m_len
);
22 if (crypto_box_seal(c
, m
, m_len
, pk
) != 0) {
23 printf("crypto_box_seal() failure\n");
26 if (crypto_box_seal_open(m2
, c
, c_len
, pk
, sk
) != 0) {
27 printf("crypto_box_seal_open() failure\n");
30 printf("%d\n", memcmp(m
, m2
, m_len
));
32 printf("%d\n", crypto_box_seal_open(m
, c
, 0U, pk
, sk
));
33 printf("%d\n", crypto_box_seal_open(m
, c
, c_len
- 1U, pk
, sk
));
34 printf("%d\n", crypto_box_seal_open(m
, c
, c_len
, sk
, pk
));
40 assert(crypto_box_sealbytes() == crypto_box_SEALBYTES
);