# Copyright 2013 Donald Stufft and individual contributors # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from __future__ import absolute_import, division, print_function from nacl.bindings.crypto_aead import ( crypto_aead_chacha20poly1305_ABYTES, crypto_aead_chacha20poly1305_KEYBYTES, crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX, crypto_aead_chacha20poly1305_NPUBBYTES, crypto_aead_chacha20poly1305_NSECBYTES, crypto_aead_chacha20poly1305_decrypt, crypto_aead_chacha20poly1305_encrypt, crypto_aead_chacha20poly1305_ietf_ABYTES, crypto_aead_chacha20poly1305_ietf_KEYBYTES, crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX, crypto_aead_chacha20poly1305_ietf_NPUBBYTES, crypto_aead_chacha20poly1305_ietf_NSECBYTES, crypto_aead_chacha20poly1305_ietf_decrypt, crypto_aead_chacha20poly1305_ietf_encrypt, crypto_aead_xchacha20poly1305_ietf_ABYTES, crypto_aead_xchacha20poly1305_ietf_KEYBYTES, crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX, crypto_aead_xchacha20poly1305_ietf_NPUBBYTES, crypto_aead_xchacha20poly1305_ietf_NSECBYTES, crypto_aead_xchacha20poly1305_ietf_decrypt, crypto_aead_xchacha20poly1305_ietf_encrypt, ) from nacl.bindings.crypto_box import ( crypto_box, crypto_box_BEFORENMBYTES, crypto_box_BOXZEROBYTES, crypto_box_NONCEBYTES, crypto_box_PUBLICKEYBYTES, crypto_box_SEALBYTES, crypto_box_SECRETKEYBYTES, crypto_box_SEEDBYTES, crypto_box_ZEROBYTES, crypto_box_afternm, crypto_box_beforenm, crypto_box_keypair, crypto_box_open, crypto_box_open_afternm, crypto_box_seal, crypto_box_seal_open, crypto_box_seed_keypair, ) from nacl.bindings.crypto_generichash import ( crypto_generichash_BYTES, crypto_generichash_BYTES_MAX, crypto_generichash_BYTES_MIN, crypto_generichash_KEYBYTES, crypto_generichash_KEYBYTES_MAX, crypto_generichash_KEYBYTES_MIN, crypto_generichash_PERSONALBYTES, crypto_generichash_SALTBYTES, crypto_generichash_STATEBYTES, generichash_blake2b_final as crypto_generichash_blake2b_final, generichash_blake2b_init as crypto_generichash_blake2b_init, generichash_blake2b_salt_personal as crypto_generichash_blake2b_salt_personal, generichash_blake2b_state_copy as crypto_generichash_blake2b_state_copy, generichash_blake2b_update as crypto_generichash_blake2b_update ) from nacl.bindings.crypto_hash import ( crypto_hash, crypto_hash_BYTES, crypto_hash_sha256, crypto_hash_sha256_BYTES, crypto_hash_sha512, crypto_hash_sha512_BYTES, ) from nacl.bindings.crypto_kx import ( crypto_kx_PUBLIC_KEY_BYTES, crypto_kx_SECRET_KEY_BYTES, crypto_kx_SEED_BYTES, crypto_kx_SESSION_KEY_BYTES, crypto_kx_client_session_keys, crypto_kx_keypair, crypto_kx_seed_keypair, crypto_kx_server_session_keys, ) from nacl.bindings.crypto_pwhash import ( crypto_pwhash_ALG_ARGON2I13, crypto_pwhash_ALG_ARGON2ID13, crypto_pwhash_ALG_DEFAULT, crypto_pwhash_BYTES_MAX, crypto_pwhash_BYTES_MIN, crypto_pwhash_PASSWD_MAX, crypto_pwhash_PASSWD_MIN, crypto_pwhash_SALTBYTES, crypto_pwhash_STRBYTES, crypto_pwhash_alg, crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE, crypto_pwhash_argon2i_MEMLIMIT_MAX, crypto_pwhash_argon2i_MEMLIMIT_MIN, crypto_pwhash_argon2i_MEMLIMIT_MODERATE, crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE, crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE, crypto_pwhash_argon2i_OPSLIMIT_MAX, crypto_pwhash_argon2i_OPSLIMIT_MIN, crypto_pwhash_argon2i_OPSLIMIT_MODERATE, crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE, crypto_pwhash_argon2i_STRPREFIX, crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE, crypto_pwhash_argon2id_MEMLIMIT_MAX, crypto_pwhash_argon2id_MEMLIMIT_MIN, crypto_pwhash_argon2id_MEMLIMIT_MODERATE, crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE, crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE, crypto_pwhash_argon2id_OPSLIMIT_MAX, crypto_pwhash_argon2id_OPSLIMIT_MIN, crypto_pwhash_argon2id_OPSLIMIT_MODERATE, crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE, crypto_pwhash_argon2id_STRPREFIX, crypto_pwhash_scryptsalsa208sha256_BYTES_MAX, crypto_pwhash_scryptsalsa208sha256_BYTES_MIN, crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE, crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX, crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN, crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE, crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE, crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX, crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN, crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE, crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX, crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN, crypto_pwhash_scryptsalsa208sha256_SALTBYTES, crypto_pwhash_scryptsalsa208sha256_STRBYTES, crypto_pwhash_scryptsalsa208sha256_STRPREFIX, crypto_pwhash_scryptsalsa208sha256_ll, crypto_pwhash_scryptsalsa208sha256_str, crypto_pwhash_scryptsalsa208sha256_str_verify, crypto_pwhash_str_alg, crypto_pwhash_str_verify, nacl_bindings_pick_scrypt_params, ) from nacl.bindings.crypto_scalarmult import ( crypto_scalarmult, crypto_scalarmult_BYTES, crypto_scalarmult_SCALARBYTES, crypto_scalarmult_base ) from nacl.bindings.crypto_secretbox import ( crypto_secretbox, crypto_secretbox_BOXZEROBYTES, crypto_secretbox_KEYBYTES, crypto_secretbox_MACBYTES, crypto_secretbox_MESSAGEBYTES_MAX, crypto_secretbox_NONCEBYTES, crypto_secretbox_ZEROBYTES, crypto_secretbox_open ) from nacl.bindings.crypto_secretstream import ( crypto_secretstream_xchacha20poly1305_ABYTES, crypto_secretstream_xchacha20poly1305_HEADERBYTES, crypto_secretstream_xchacha20poly1305_KEYBYTES, crypto_secretstream_xchacha20poly1305_STATEBYTES, crypto_secretstream_xchacha20poly1305_TAG_FINAL, crypto_secretstream_xchacha20poly1305_TAG_MESSAGE, crypto_secretstream_xchacha20poly1305_TAG_PUSH, crypto_secretstream_xchacha20poly1305_TAG_REKEY, crypto_secretstream_xchacha20poly1305_init_pull, crypto_secretstream_xchacha20poly1305_init_push, crypto_secretstream_xchacha20poly1305_keygen, crypto_secretstream_xchacha20poly1305_pull, crypto_secretstream_xchacha20poly1305_push, crypto_secretstream_xchacha20poly1305_rekey, crypto_secretstream_xchacha20poly1305_state, ) from nacl.bindings.crypto_shorthash import ( BYTES as crypto_shorthash_siphash24_BYTES, KEYBYTES as crypto_shorthash_siphash24_KEYBYTES, XBYTES as crypto_shorthash_siphashx24_BYTES, XKEYBYTES as crypto_shorthash_siphashx24_KEYBYTES, crypto_shorthash_siphash24, crypto_shorthash_siphashx24 ) from nacl.bindings.crypto_sign import ( crypto_sign, crypto_sign_BYTES, crypto_sign_PUBLICKEYBYTES, crypto_sign_SECRETKEYBYTES, crypto_sign_SEEDBYTES, crypto_sign_ed25519_pk_to_curve25519, crypto_sign_ed25519_sk_to_curve25519, crypto_sign_ed25519ph_STATEBYTES, crypto_sign_ed25519ph_final_create, crypto_sign_ed25519ph_final_verify, crypto_sign_ed25519ph_state, crypto_sign_ed25519ph_update, crypto_sign_keypair, crypto_sign_open, crypto_sign_seed_keypair, ) from nacl.bindings.randombytes import randombytes from nacl.bindings.sodium_core import sodium_init from nacl.bindings.utils import ( sodium_add, sodium_increment, sodium_memcmp, sodium_pad, sodium_unpad, ) __all__ = [ "crypto_aead_chacha20poly1305_ABYTES", "crypto_aead_chacha20poly1305_KEYBYTES", "crypto_aead_chacha20poly1305_MESSAGEBYTES_MAX", "crypto_aead_chacha20poly1305_NPUBBYTES", "crypto_aead_chacha20poly1305_NSECBYTES", "crypto_aead_chacha20poly1305_decrypt", "crypto_aead_chacha20poly1305_encrypt", "crypto_aead_chacha20poly1305_ietf_ABYTES", "crypto_aead_chacha20poly1305_ietf_KEYBYTES", "crypto_aead_chacha20poly1305_ietf_MESSAGEBYTES_MAX", "crypto_aead_chacha20poly1305_ietf_NPUBBYTES", "crypto_aead_chacha20poly1305_ietf_NSECBYTES", "crypto_aead_chacha20poly1305_ietf_decrypt", "crypto_aead_chacha20poly1305_ietf_encrypt", "crypto_aead_xchacha20poly1305_ietf_ABYTES", "crypto_aead_xchacha20poly1305_ietf_KEYBYTES", "crypto_aead_xchacha20poly1305_ietf_MESSAGEBYTES_MAX", "crypto_aead_xchacha20poly1305_ietf_NPUBBYTES", "crypto_aead_xchacha20poly1305_ietf_NSECBYTES", "crypto_aead_xchacha20poly1305_ietf_decrypt", "crypto_aead_xchacha20poly1305_ietf_encrypt", "crypto_box_SECRETKEYBYTES", "crypto_box_PUBLICKEYBYTES", "crypto_box_SEEDBYTES", "crypto_box_NONCEBYTES", "crypto_box_ZEROBYTES", "crypto_box_BOXZEROBYTES", "crypto_box_BEFORENMBYTES", "crypto_box_SEALBYTES", "crypto_box_keypair", "crypto_box", "crypto_box_open", "crypto_box_beforenm", "crypto_box_afternm", "crypto_box_open_afternm", "crypto_box_seal", "crypto_box_seal_open", "crypto_box_seed_keypair", "crypto_hash_BYTES", "crypto_hash_sha256_BYTES", "crypto_hash_sha512_BYTES", "crypto_hash", "crypto_hash_sha256", "crypto_hash_sha512", "crypto_generichash_BYTES", "crypto_generichash_BYTES_MIN", "crypto_generichash_BYTES_MAX", "crypto_generichash_KEYBYTES", "crypto_generichash_KEYBYTES_MIN", "crypto_generichash_KEYBYTES_MAX", "crypto_generichash_SALTBYTES", "crypto_generichash_PERSONALBYTES", "crypto_generichash_STATEBYTES", "crypto_generichash_blake2b_salt_personal", "crypto_generichash_blake2b_init", "crypto_generichash_blake2b_update", "crypto_generichash_blake2b_final", "crypto_generichash_blake2b_state_copy", "crypto_kx_keypair", "crypto_kx_seed_keypair", "crypto_kx_client_session_keys", "crypto_kx_server_session_keys", "crypto_kx_PUBLIC_KEY_BYTES", "crypto_kx_SECRET_KEY_BYTES", "crypto_kx_SEED_BYTES", "crypto_kx_SESSION_KEY_BYTES", "crypto_scalarmult_BYTES", "crypto_scalarmult_SCALARBYTES", "crypto_scalarmult", "crypto_scalarmult_base", "crypto_secretbox_KEYBYTES", "crypto_secretbox_NONCEBYTES", "crypto_secretbox_ZEROBYTES", "crypto_secretbox_BOXZEROBYTES", "crypto_secretbox_MACBYTES", "crypto_secretbox_MESSAGEBYTES_MAX", "crypto_secretbox", "crypto_secretbox_open", "crypto_secretstream_xchacha20poly1305_ABYTES", "crypto_secretstream_xchacha20poly1305_HEADERBYTES", "crypto_secretstream_xchacha20poly1305_KEYBYTES", "crypto_secretstream_xchacha20poly1305_STATEBYTES", "crypto_secretstream_xchacha20poly1305_TAG_FINAL", "crypto_secretstream_xchacha20poly1305_TAG_MESSAGE", "crypto_secretstream_xchacha20poly1305_TAG_PUSH", "crypto_secretstream_xchacha20poly1305_TAG_REKEY", "crypto_secretstream_xchacha20poly1305_init_pull", "crypto_secretstream_xchacha20poly1305_init_push", "crypto_secretstream_xchacha20poly1305_keygen", "crypto_secretstream_xchacha20poly1305_pull", "crypto_secretstream_xchacha20poly1305_push", "crypto_secretstream_xchacha20poly1305_rekey", "crypto_secretstream_xchacha20poly1305_state", "crypto_shorthash_siphash24_BYTES", "crypto_shorthash_siphash24_KEYBYTES", "crypto_shorthash_siphash24", "crypto_shorthash_siphashx24_BYTES", "crypto_shorthash_siphashx24_KEYBYTES", "crypto_shorthash_siphashx24", "crypto_sign_BYTES", "crypto_sign_SEEDBYTES", "crypto_sign_PUBLICKEYBYTES", "crypto_sign_SECRETKEYBYTES", "crypto_sign_keypair", "crypto_sign_seed_keypair", "crypto_sign", "crypto_sign_open", "crypto_sign_ed25519_pk_to_curve25519", "crypto_sign_ed25519_sk_to_curve25519", "crypto_sign_ed25519ph_STATEBYTES", "crypto_sign_ed25519ph_final_create", "crypto_sign_ed25519ph_final_verify", "crypto_sign_ed25519ph_state", "crypto_sign_ed25519ph_update", "crypto_pwhash_ALG_ARGON2I13", "crypto_pwhash_ALG_ARGON2ID13", "crypto_pwhash_ALG_DEFAULT", "crypto_pwhash_BYTES_MAX", "crypto_pwhash_BYTES_MIN", "crypto_pwhash_PASSWD_MAX", "crypto_pwhash_PASSWD_MIN", "crypto_pwhash_SALTBYTES", "crypto_pwhash_STRBYTES", "crypto_pwhash_alg", "crypto_pwhash_argon2i_MEMLIMIT_MIN", "crypto_pwhash_argon2i_MEMLIMIT_MAX", "crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE", "crypto_pwhash_argon2i_MEMLIMIT_MODERATE", "crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE", "crypto_pwhash_argon2i_OPSLIMIT_MIN", "crypto_pwhash_argon2i_OPSLIMIT_MAX", "crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE", "crypto_pwhash_argon2i_OPSLIMIT_MODERATE", "crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE", "crypto_pwhash_argon2i_STRPREFIX", "crypto_pwhash_argon2id_MEMLIMIT_MIN", "crypto_pwhash_argon2id_MEMLIMIT_MAX", "crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE", "crypto_pwhash_argon2id_MEMLIMIT_MODERATE", "crypto_pwhash_argon2id_OPSLIMIT_MIN", "crypto_pwhash_argon2id_OPSLIMIT_MAX", "crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE", "crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE", "crypto_pwhash_argon2id_OPSLIMIT_MODERATE", "crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE", "crypto_pwhash_argon2id_STRPREFIX", "crypto_pwhash_str_alg", "crypto_pwhash_str_verify", "crypto_pwhash_scryptsalsa208sha256_BYTES_MAX", "crypto_pwhash_scryptsalsa208sha256_BYTES_MIN", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN", "crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN", "crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_SENSITIVE", "crypto_pwhash_scryptsalsa208sha256_PASSWD_MAX", "crypto_pwhash_scryptsalsa208sha256_PASSWD_MIN", "crypto_pwhash_scryptsalsa208sha256_SALTBYTES", "crypto_pwhash_scryptsalsa208sha256_STRBYTES", "crypto_pwhash_scryptsalsa208sha256_STRPREFIX", "crypto_pwhash_scryptsalsa208sha256_ll", "crypto_pwhash_scryptsalsa208sha256_str", "crypto_pwhash_scryptsalsa208sha256_str_verify", "nacl_bindings_pick_scrypt_params", "randombytes", "sodium_init", "sodium_add", "sodium_increment", "sodium_memcmp", "sodium_pad", "sodium_unpad", ] # Initialize Sodium sodium_init()