1 #ifndef crypto_aead_chacha20poly1305_H 2 #define crypto_aead_chacha20poly1305_H 3 4 #if 0 5 #include <stddef.h> 6 #endif 7 #include "export.h" 8 9 #ifdef __cplusplus 10 # ifdef __GNUC__ 11 # pragma GCC diagnostic ignored "-Wlong-long" 12 # endif 13 extern "C" { 14 #endif 15 16 /* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */ 17 18 #define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U 19 SODIUM_EXPORT 20 size_t crypto_aead_chacha20poly1305_ietf_keybytes(void); 21 22 #define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U 23 SODIUM_EXPORT 24 size_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void); 25 26 #define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U 27 28 SODIUM_EXPORT 29 size_t crypto_aead_chacha20poly1305_ietf_npubbytes(void); 30 31 #define crypto_aead_chacha20poly1305_ietf_ABYTES 16U 32 SODIUM_EXPORT 33 size_t crypto_aead_chacha20poly1305_ietf_abytes(void); 34 35 #define crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX \ 36 SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES, \ 37 (64ULL * (1ULL << 32) - 64ULL) - crypto_aead_chacha20poly1305_ietf_ABYTES) 38 SODIUM_EXPORT 39 size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max(void); 40 41 SODIUM_EXPORT 42 int crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, 43 unsigned long long *clen_p, 44 const unsigned char *m, 45 unsigned long long mlen, 46 const unsigned char *ad, 47 unsigned long long adlen, 48 const unsigned char *nsec, 49 const unsigned char *npub, 50 const unsigned char *k); 51 52 SODIUM_EXPORT 53 int crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, 54 unsigned long long *mlen_p, 55 unsigned char *nsec, 56 const unsigned char *c, 57 unsigned long long clen, 58 const unsigned char *ad, 59 unsigned long long adlen, 60 const unsigned char *npub, 61 const unsigned char *k) 62 __attribute__ ((warn_unused_result)); 63 64 SODIUM_EXPORT 65 int crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, 66 unsigned char *mac, 67 unsigned long long *maclen_p, 68 const unsigned char *m, 69 unsigned long long mlen, 70 const unsigned char *ad, 71 unsigned long long adlen, 72 const unsigned char *nsec, 73 const unsigned char *npub, 74 const unsigned char *k); 75 76 SODIUM_EXPORT 77 int crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, 78 unsigned char *nsec, 79 const unsigned char *c, 80 unsigned long long clen, 81 const unsigned char *mac, 82 const unsigned char *ad, 83 unsigned long long adlen, 84 const unsigned char *npub, 85 const unsigned char *k) 86 __attribute__ ((warn_unused_result)); 87 88 SODIUM_EXPORT 89 void crypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES]); 90 91 /* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */ 92 93 #define crypto_aead_chacha20poly1305_KEYBYTES 32U 94 SODIUM_EXPORT 95 size_t crypto_aead_chacha20poly1305_keybytes(void); 96 97 #define crypto_aead_chacha20poly1305_NSECBYTES 0U 98 SODIUM_EXPORT 99 size_t crypto_aead_chacha20poly1305_nsecbytes(void); 100 101 #define crypto_aead_chacha20poly1305_NPUBBYTES 8U 102 SODIUM_EXPORT 103 size_t crypto_aead_chacha20poly1305_npubbytes(void); 104 105 #define crypto_aead_chacha20poly1305_ABYTES 16U 106 SODIUM_EXPORT 107 size_t crypto_aead_chacha20poly1305_abytes(void); 108 109 #define crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX \ 110 (SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ABYTES) 111 SODIUM_EXPORT 112 size_t crypto_aead_chacha20poly1305_messagebytes_max(void); 113 114 SODIUM_EXPORT 115 int crypto_aead_chacha20poly1305_encrypt(unsigned char *c, 116 unsigned long long *clen_p, 117 const unsigned char *m, 118 unsigned long long mlen, 119 const unsigned char *ad, 120 unsigned long long adlen, 121 const unsigned char *nsec, 122 const unsigned char *npub, 123 const unsigned char *k); 124 125 SODIUM_EXPORT 126 int crypto_aead_chacha20poly1305_decrypt(unsigned char *m, 127 unsigned long long *mlen_p, 128 unsigned char *nsec, 129 const unsigned char *c, 130 unsigned long long clen, 131 const unsigned char *ad, 132 unsigned long long adlen, 133 const unsigned char *npub, 134 const unsigned char *k) 135 __attribute__ ((warn_unused_result)); 136 137 SODIUM_EXPORT 138 int crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, 139 unsigned char *mac, 140 unsigned long long *maclen_p, 141 const unsigned char *m, 142 unsigned long long mlen, 143 const unsigned char *ad, 144 unsigned long long adlen, 145 const unsigned char *nsec, 146 const unsigned char *npub, 147 const unsigned char *k); 148 149 SODIUM_EXPORT 150 int crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, 151 unsigned char *nsec, 152 const unsigned char *c, 153 unsigned long long clen, 154 const unsigned char *mac, 155 const unsigned char *ad, 156 unsigned long long adlen, 157 const unsigned char *npub, 158 const unsigned char *k) 159 __attribute__ ((warn_unused_result)); 160 161 SODIUM_EXPORT 162 void crypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES]); 163 164 /* Aliases */ 165 166 #define crypto_aead_chacha20poly1305_IETF_KEYBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES 167 #define crypto_aead_chacha20poly1305_IETF_NSECBYTES crypto_aead_chacha20poly1305_ietf_NSECBYTES 168 #define crypto_aead_chacha20poly1305_IETF_NPUBBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES 169 #define crypto_aead_chacha20poly1305_IETF_ABYTES crypto_aead_chacha20poly1305_ietf_ABYTES 170 #define crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX 171 172 #ifdef __cplusplus 173 } 174 #endif 175 176 #endif 177 #ifndef crypto_aead_chacha20poly1305_H 178 #define crypto_aead_chacha20poly1305_H 179 180 #if 0 181 #include <stddef.h> 182 #endif 183 #include "export.h" 184 185 #ifdef __cplusplus 186 # ifdef __GNUC__ 187 # pragma GCC diagnostic ignored "-Wlong-long" 188 # endif 189 extern "C" { 190 #endif 191 192 /* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */ 193 194 #define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U 195 SODIUM_EXPORT 196 size_t crypto_aead_chacha20poly1305_ietf_keybytes(void); 197 198 #define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U 199 SODIUM_EXPORT 200 size_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void); 201 202 #define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U 203 204 SODIUM_EXPORT 205 size_t crypto_aead_chacha20poly1305_ietf_npubbytes(void); 206 207 #define crypto_aead_chacha20poly1305_ietf_ABYTES 16U 208 SODIUM_EXPORT 209 size_t crypto_aead_chacha20poly1305_ietf_abytes(void); 210 211 #define crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX \ 212 SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES, \ 213 (64ULL * (1ULL << 32) - 64ULL) - crypto_aead_chacha20poly1305_ietf_ABYTES) 214 SODIUM_EXPORT 215 size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max(void); 216 217 SODIUM_EXPORT 218 int crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, 219 unsigned long long *clen_p, 220 const unsigned char *m, 221 unsigned long long mlen, 222 const unsigned char *ad, 223 unsigned long long adlen, 224 const unsigned char *nsec, 225 const unsigned char *npub, 226 const unsigned char *k); 227 228 SODIUM_EXPORT 229 int crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, 230 unsigned long long *mlen_p, 231 unsigned char *nsec, 232 const unsigned char *c, 233 unsigned long long clen, 234 const unsigned char *ad, 235 unsigned long long adlen, 236 const unsigned char *npub, 237 const unsigned char *k) 238 __attribute__ ((warn_unused_result)); 239 240 SODIUM_EXPORT 241 int crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, 242 unsigned char *mac, 243 unsigned long long *maclen_p, 244 const unsigned char *m, 245 unsigned long long mlen, 246 const unsigned char *ad, 247 unsigned long long adlen, 248 const unsigned char *nsec, 249 const unsigned char *npub, 250 const unsigned char *k); 251 252 SODIUM_EXPORT 253 int crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, 254 unsigned char *nsec, 255 const unsigned char *c, 256 unsigned long long clen, 257 const unsigned char *mac, 258 const unsigned char *ad, 259 unsigned long long adlen, 260 const unsigned char *npub, 261 const unsigned char *k) 262 __attribute__ ((warn_unused_result)); 263 264 SODIUM_EXPORT 265 void crypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES]); 266 267 /* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */ 268 269 #define crypto_aead_chacha20poly1305_KEYBYTES 32U 270 SODIUM_EXPORT 271 size_t crypto_aead_chacha20poly1305_keybytes(void); 272 273 #define crypto_aead_chacha20poly1305_NSECBYTES 0U 274 SODIUM_EXPORT 275 size_t crypto_aead_chacha20poly1305_nsecbytes(void); 276 277 #define crypto_aead_chacha20poly1305_NPUBBYTES 8U 278 SODIUM_EXPORT 279 size_t crypto_aead_chacha20poly1305_npubbytes(void); 280 281 #define crypto_aead_chacha20poly1305_ABYTES 16U 282 SODIUM_EXPORT 283 size_t crypto_aead_chacha20poly1305_abytes(void); 284 285 #define crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX \ 286 (SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ABYTES) 287 SODIUM_EXPORT 288 size_t crypto_aead_chacha20poly1305_messagebytes_max(void); 289 290 SODIUM_EXPORT 291 int crypto_aead_chacha20poly1305_encrypt(unsigned char *c, 292 unsigned long long *clen_p, 293 const unsigned char *m, 294 unsigned long long mlen, 295 const unsigned char *ad, 296 unsigned long long adlen, 297 const unsigned char *nsec, 298 const unsigned char *npub, 299 const unsigned char *k); 300 301 SODIUM_EXPORT 302 int crypto_aead_chacha20poly1305_decrypt(unsigned char *m, 303 unsigned long long *mlen_p, 304 unsigned char *nsec, 305 const unsigned char *c, 306 unsigned long long clen, 307 const unsigned char *ad, 308 unsigned long long adlen, 309 const unsigned char *npub, 310 const unsigned char *k) 311 __attribute__ ((warn_unused_result)); 312 313 SODIUM_EXPORT 314 int crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, 315 unsigned char *mac, 316 unsigned long long *maclen_p, 317 const unsigned char *m, 318 unsigned long long mlen, 319 const unsigned char *ad, 320 unsigned long long adlen, 321 const unsigned char *nsec, 322 const unsigned char *npub, 323 const unsigned char *k); 324 325 SODIUM_EXPORT 326 int crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, 327 unsigned char *nsec, 328 const unsigned char *c, 329 unsigned long long clen, 330 const unsigned char *mac, 331 const unsigned char *ad, 332 unsigned long long adlen, 333 const unsigned char *npub, 334 const unsigned char *k) 335 __attribute__ ((warn_unused_result)); 336 337 SODIUM_EXPORT 338 void crypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES]); 339 340 /* Aliases */ 341 342 #define crypto_aead_chacha20poly1305_IETF_KEYBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES 343 #define crypto_aead_chacha20poly1305_IETF_NSECBYTES crypto_aead_chacha20poly1305_ietf_NSECBYTES 344 #define crypto_aead_chacha20poly1305_IETF_NPUBBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES 345 #define crypto_aead_chacha20poly1305_IETF_ABYTES crypto_aead_chacha20poly1305_ietf_ABYTES 346 #define crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX 347 348 #ifdef __cplusplus 349 } 350 #endif 351 352 #endif 353 #ifndef crypto_aead_chacha20poly1305_H 354 #define crypto_aead_chacha20poly1305_H 355 356 #if 0 357 #include <stddef.h> 358 #endif 359 #include "export.h" 360 361 #ifdef __cplusplus 362 # ifdef __GNUC__ 363 # pragma GCC diagnostic ignored "-Wlong-long" 364 # endif 365 extern "C" { 366 #endif 367 368 /* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */ 369 370 #define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U 371 SODIUM_EXPORT 372 size_t crypto_aead_chacha20poly1305_ietf_keybytes(void); 373 374 #define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U 375 SODIUM_EXPORT 376 size_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void); 377 378 #define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U 379 380 SODIUM_EXPORT 381 size_t crypto_aead_chacha20poly1305_ietf_npubbytes(void); 382 383 #define crypto_aead_chacha20poly1305_ietf_ABYTES 16U 384 SODIUM_EXPORT 385 size_t crypto_aead_chacha20poly1305_ietf_abytes(void); 386 387 #define crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX \ 388 SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES, \ 389 (64ULL * (1ULL << 32) - 64ULL) - crypto_aead_chacha20poly1305_ietf_ABYTES) 390 SODIUM_EXPORT 391 size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max(void); 392 393 SODIUM_EXPORT 394 int crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, 395 unsigned long long *clen_p, 396 const unsigned char *m, 397 unsigned long long mlen, 398 const unsigned char *ad, 399 unsigned long long adlen, 400 const unsigned char *nsec, 401 const unsigned char *npub, 402 const unsigned char *k); 403 404 SODIUM_EXPORT 405 int crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, 406 unsigned long long *mlen_p, 407 unsigned char *nsec, 408 const unsigned char *c, 409 unsigned long long clen, 410 const unsigned char *ad, 411 unsigned long long adlen, 412 const unsigned char *npub, 413 const unsigned char *k) 414 __attribute__ ((warn_unused_result)); 415 416 SODIUM_EXPORT 417 int crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, 418 unsigned char *mac, 419 unsigned long long *maclen_p, 420 const unsigned char *m, 421 unsigned long long mlen, 422 const unsigned char *ad, 423 unsigned long long adlen, 424 const unsigned char *nsec, 425 const unsigned char *npub, 426 const unsigned char *k); 427 428 SODIUM_EXPORT 429 int crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, 430 unsigned char *nsec, 431 const unsigned char *c, 432 unsigned long long clen, 433 const unsigned char *mac, 434 const unsigned char *ad, 435 unsigned long long adlen, 436 const unsigned char *npub, 437 const unsigned char *k) 438 __attribute__ ((warn_unused_result)); 439 440 SODIUM_EXPORT 441 void crypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES]); 442 443 /* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */ 444 445 #define crypto_aead_chacha20poly1305_KEYBYTES 32U 446 SODIUM_EXPORT 447 size_t crypto_aead_chacha20poly1305_keybytes(void); 448 449 #define crypto_aead_chacha20poly1305_NSECBYTES 0U 450 SODIUM_EXPORT 451 size_t crypto_aead_chacha20poly1305_nsecbytes(void); 452 453 #define crypto_aead_chacha20poly1305_NPUBBYTES 8U 454 SODIUM_EXPORT 455 size_t crypto_aead_chacha20poly1305_npubbytes(void); 456 457 #define crypto_aead_chacha20poly1305_ABYTES 16U 458 SODIUM_EXPORT 459 size_t crypto_aead_chacha20poly1305_abytes(void); 460 461 #define crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX \ 462 (SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ABYTES) 463 SODIUM_EXPORT 464 size_t crypto_aead_chacha20poly1305_messagebytes_max(void); 465 466 SODIUM_EXPORT 467 int crypto_aead_chacha20poly1305_encrypt(unsigned char *c, 468 unsigned long long *clen_p, 469 const unsigned char *m, 470 unsigned long long mlen, 471 const unsigned char *ad, 472 unsigned long long adlen, 473 const unsigned char *nsec, 474 const unsigned char *npub, 475 const unsigned char *k); 476 477 SODIUM_EXPORT 478 int crypto_aead_chacha20poly1305_decrypt(unsigned char *m, 479 unsigned long long *mlen_p, 480 unsigned char *nsec, 481 const unsigned char *c, 482 unsigned long long clen, 483 const unsigned char *ad, 484 unsigned long long adlen, 485 const unsigned char *npub, 486 const unsigned char *k) 487 __attribute__ ((warn_unused_result)); 488 489 SODIUM_EXPORT 490 int crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, 491 unsigned char *mac, 492 unsigned long long *maclen_p, 493 const unsigned char *m, 494 unsigned long long mlen, 495 const unsigned char *ad, 496 unsigned long long adlen, 497 const unsigned char *nsec, 498 const unsigned char *npub, 499 const unsigned char *k); 500 501 SODIUM_EXPORT 502 int crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, 503 unsigned char *nsec, 504 const unsigned char *c, 505 unsigned long long clen, 506 const unsigned char *mac, 507 const unsigned char *ad, 508 unsigned long long adlen, 509 const unsigned char *npub, 510 const unsigned char *k) 511 __attribute__ ((warn_unused_result)); 512 513 SODIUM_EXPORT 514 void crypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES]); 515 516 /* Aliases */ 517 518 #define crypto_aead_chacha20poly1305_IETF_KEYBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES 519 #define crypto_aead_chacha20poly1305_IETF_NSECBYTES crypto_aead_chacha20poly1305_ietf_NSECBYTES 520 #define crypto_aead_chacha20poly1305_IETF_NPUBBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES 521 #define crypto_aead_chacha20poly1305_IETF_ABYTES crypto_aead_chacha20poly1305_ietf_ABYTES 522 #define crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX 523 524 #ifdef __cplusplus 525 } 526 #endif 527 528 #endif 529 #ifndef crypto_aead_chacha20poly1305_H 530 #define crypto_aead_chacha20poly1305_H 531 532 #if 0 533 #include <stddef.h> 534 #endif 535 #include "export.h" 536 537 #ifdef __cplusplus 538 # ifdef __GNUC__ 539 # pragma GCC diagnostic ignored "-Wlong-long" 540 # endif 541 extern "C" { 542 #endif 543 544 /* -- IETF ChaCha20-Poly1305 construction with a 96-bit nonce and a 32-bit internal counter -- */ 545 546 #define crypto_aead_chacha20poly1305_ietf_KEYBYTES 32U 547 SODIUM_EXPORT 548 size_t crypto_aead_chacha20poly1305_ietf_keybytes(void); 549 550 #define crypto_aead_chacha20poly1305_ietf_NSECBYTES 0U 551 SODIUM_EXPORT 552 size_t crypto_aead_chacha20poly1305_ietf_nsecbytes(void); 553 554 #define crypto_aead_chacha20poly1305_ietf_NPUBBYTES 12U 555 556 SODIUM_EXPORT 557 size_t crypto_aead_chacha20poly1305_ietf_npubbytes(void); 558 559 #define crypto_aead_chacha20poly1305_ietf_ABYTES 16U 560 SODIUM_EXPORT 561 size_t crypto_aead_chacha20poly1305_ietf_abytes(void); 562 563 #define crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX \ 564 SODIUM_MIN(SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ietf_ABYTES, \ 565 (64ULL * (1ULL << 32) - 64ULL) - crypto_aead_chacha20poly1305_ietf_ABYTES) 566 SODIUM_EXPORT 567 size_t crypto_aead_chacha20poly1305_ietf_messagebytes_max(void); 568 569 SODIUM_EXPORT 570 int crypto_aead_chacha20poly1305_ietf_encrypt(unsigned char *c, 571 unsigned long long *clen_p, 572 const unsigned char *m, 573 unsigned long long mlen, 574 const unsigned char *ad, 575 unsigned long long adlen, 576 const unsigned char *nsec, 577 const unsigned char *npub, 578 const unsigned char *k); 579 580 SODIUM_EXPORT 581 int crypto_aead_chacha20poly1305_ietf_decrypt(unsigned char *m, 582 unsigned long long *mlen_p, 583 unsigned char *nsec, 584 const unsigned char *c, 585 unsigned long long clen, 586 const unsigned char *ad, 587 unsigned long long adlen, 588 const unsigned char *npub, 589 const unsigned char *k) 590 __attribute__ ((warn_unused_result)); 591 592 SODIUM_EXPORT 593 int crypto_aead_chacha20poly1305_ietf_encrypt_detached(unsigned char *c, 594 unsigned char *mac, 595 unsigned long long *maclen_p, 596 const unsigned char *m, 597 unsigned long long mlen, 598 const unsigned char *ad, 599 unsigned long long adlen, 600 const unsigned char *nsec, 601 const unsigned char *npub, 602 const unsigned char *k); 603 604 SODIUM_EXPORT 605 int crypto_aead_chacha20poly1305_ietf_decrypt_detached(unsigned char *m, 606 unsigned char *nsec, 607 const unsigned char *c, 608 unsigned long long clen, 609 const unsigned char *mac, 610 const unsigned char *ad, 611 unsigned long long adlen, 612 const unsigned char *npub, 613 const unsigned char *k) 614 __attribute__ ((warn_unused_result)); 615 616 SODIUM_EXPORT 617 void crypto_aead_chacha20poly1305_ietf_keygen(unsigned char k[crypto_aead_chacha20poly1305_ietf_KEYBYTES]); 618 619 /* -- Original ChaCha20-Poly1305 construction with a 64-bit nonce and a 64-bit internal counter -- */ 620 621 #define crypto_aead_chacha20poly1305_KEYBYTES 32U 622 SODIUM_EXPORT 623 size_t crypto_aead_chacha20poly1305_keybytes(void); 624 625 #define crypto_aead_chacha20poly1305_NSECBYTES 0U 626 SODIUM_EXPORT 627 size_t crypto_aead_chacha20poly1305_nsecbytes(void); 628 629 #define crypto_aead_chacha20poly1305_NPUBBYTES 8U 630 SODIUM_EXPORT 631 size_t crypto_aead_chacha20poly1305_npubbytes(void); 632 633 #define crypto_aead_chacha20poly1305_ABYTES 16U 634 SODIUM_EXPORT 635 size_t crypto_aead_chacha20poly1305_abytes(void); 636 637 #define crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX \ 638 (SODIUM_SIZE_MAX - crypto_aead_chacha20poly1305_ABYTES) 639 SODIUM_EXPORT 640 size_t crypto_aead_chacha20poly1305_messagebytes_max(void); 641 642 SODIUM_EXPORT 643 int crypto_aead_chacha20poly1305_encrypt(unsigned char *c, 644 unsigned long long *clen_p, 645 const unsigned char *m, 646 unsigned long long mlen, 647 const unsigned char *ad, 648 unsigned long long adlen, 649 const unsigned char *nsec, 650 const unsigned char *npub, 651 const unsigned char *k); 652 653 SODIUM_EXPORT 654 int crypto_aead_chacha20poly1305_decrypt(unsigned char *m, 655 unsigned long long *mlen_p, 656 unsigned char *nsec, 657 const unsigned char *c, 658 unsigned long long clen, 659 const unsigned char *ad, 660 unsigned long long adlen, 661 const unsigned char *npub, 662 const unsigned char *k) 663 __attribute__ ((warn_unused_result)); 664 665 SODIUM_EXPORT 666 int crypto_aead_chacha20poly1305_encrypt_detached(unsigned char *c, 667 unsigned char *mac, 668 unsigned long long *maclen_p, 669 const unsigned char *m, 670 unsigned long long mlen, 671 const unsigned char *ad, 672 unsigned long long adlen, 673 const unsigned char *nsec, 674 const unsigned char *npub, 675 const unsigned char *k); 676 677 SODIUM_EXPORT 678 int crypto_aead_chacha20poly1305_decrypt_detached(unsigned char *m, 679 unsigned char *nsec, 680 const unsigned char *c, 681 unsigned long long clen, 682 const unsigned char *mac, 683 const unsigned char *ad, 684 unsigned long long adlen, 685 const unsigned char *npub, 686 const unsigned char *k) 687 __attribute__ ((warn_unused_result)); 688 689 SODIUM_EXPORT 690 void crypto_aead_chacha20poly1305_keygen(unsigned char k[crypto_aead_chacha20poly1305_KEYBYTES]); 691 692 /* Aliases */ 693 694 #define crypto_aead_chacha20poly1305_IETF_KEYBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES 695 #define crypto_aead_chacha20poly1305_IETF_NSECBYTES crypto_aead_chacha20poly1305_ietf_NSECBYTES 696 #define crypto_aead_chacha20poly1305_IETF_NPUBBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES 697 #define crypto_aead_chacha20poly1305_IETF_ABYTES crypto_aead_chacha20poly1305_ietf_ABYTES 698 #define crypto_aead_chacha20poly1305_IETF_MESSAGEBYTES_MAX crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX 699 700 #ifdef __cplusplus 701 } 702 #endif 703 704 #endif 705