Python-tweetnacl is a Python wrapper around the C implementations of TweetNaCl (crypto library in 100 tweets).
Python-tweetnacl also replaces previous work Python-NaCl
See also: TweetNaCl
python import tweetnacl as nacl help(nacl)
Help on module tweetnacl: NAME tweetnacl FILE /home/jan/python-tweetnacl-20140106/build/python2.7/tweetnacl.so FUNCTIONS crypto_box(...) crypto_box(m,n,pk,sk) -> c The crypto_box function encrypts and authenticates a message m using the sender's secret key sk, the receiver's public key pk, and a nonce n. The crypto_box function returns the resulting ciphertext c. The function raises an exception if len(sk) is not crypto_box_SECRETKEYBYTES or if len(pk) is not crypto_box_PUBLICKEYBYTES or if len(n) is not crypto_box_NONCEBYTES. crypto_box_afternm(...) crypto_box_afternm(m,n,k) -> c The crypto_box_afternm function encrypts and authenticates a message m using a secret key k and a nonce n. The crypto_box_afternm function returns the resulting ciphertext c. The function raises an exception if len(k) is not crypto_box_BEFORENMBYTES. The function also raises an exception if len(n) is not crypto_box_NONCEBYTES. crypto_box_beforenm(...) crypto_box_beforenm(pk,sk) -> s Function crypto_box_beforenm computes a shared secret s from public key pk and secret key sk The function raises an exception if len(sk) is not crypto_box_SECRETKEYBYTES. It also raises an exception if len(pk) is not crypto_box_PUBLICKEYBYTES. crypto_box_curve25519xsalsa20poly1305(...) crypto_box_curve25519xsalsa20poly1305(m,n,pk,sk) -> c The crypto_box_curve25519xsalsa20poly1305 function encrypts and authenticates a message m using the sender's secret key sk, the receiver's public key pk, and a nonce n. The crypto_box_curve25519xsalsa20poly1305 function returns the resulting ciphertext c. The function raises an exception if len(sk) is not crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES or if len(pk) is not crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES or if len(n) is not crypto_box_curve25519xsalsa20poly1305_NONCEBYTES. crypto_box_curve25519xsalsa20poly1305_afternm(...) crypto_box_curve25519xsalsa20poly1305_afternm(m,n,k) -> c The crypto_box_curve25519xsalsa20poly1305_afternm function encrypts and authenticates a message m using a secret key k and a nonce n. The crypto_box_curve25519xsalsa20poly1305_afternm function returns the resulting ciphertext c. The function raises an exception if len(k) is not crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES. The function also raises an exception if len(n) is not crypto_box_curve25519xsalsa20poly1305_NONCEBYTES. crypto_box_curve25519xsalsa20poly1305_beforenm(...) crypto_box_curve25519xsalsa20poly1305_beforenm(pk,sk) -> s Function crypto_box_curve25519xsalsa20poly1305_beforenm computes a shared secret s from public key pk and secret key sk The function raises an exception if len(sk) is not crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES. It also raises an exception if len(pk) is not crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES. crypto_box_curve25519xsalsa20poly1305_keypair(...) crypto_box_curve25519xsalsa20poly1305_keypair() -> (pk,sk) The crypto_box_curve25519xsalsa20poly1305_keypair function randomly generates a secret key and a corresponding public key. It returns tuple containing the secret key in sk and public key in pk. It guarantees that sk has crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES bytes and that pk has crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES bytes. crypto_box_curve25519xsalsa20poly1305_open(...) crypto_box_curve25519xsalsa20poly1305_open(c,n,pk,sk) -> m The crypto_box_curve25519xsalsa20poly1305_open function verifies and decrypts a ciphertext c using the receiver's secret key sk, the sender's public key pk, and a nonce n. The crypto_box_curve25519xsalsa20poly1305_open function returns the resulting plaintext m. The function raises an exception if len(sk) is not crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES or if len(pk) is not crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES or if len(n) is not crypto_box_curve25519xsalsa20poly1305_NONCEBYTES. crypto_box_curve25519xsalsa20poly1305_open_afternm(...) crypto_box_curve25519xsalsa20poly1305_open_afternm(c,n,k) -> m The crypto_box_curve25519xsalsa20poly1305_open_afternm function verifies and decrypts a ciphertext c using a secret key k and a nonce n. The crypto_box_curve25519xsalsa20poly1305_open_afternm function returns the resulting plaintext m. If the ciphertext fails verification, crypto_box_curve25519xsalsa20poly1305_open_afternm raises an exception. The function also raises an exception if len(k) is not crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES, or if len(n) is not crypto_box_curve25519xsalsa20poly1305_NONCEBYTES. crypto_box_keypair(...) crypto_box_keypair() -> (pk,sk) The crypto_box_keypair function randomly generates a secret key and a corresponding public key. It returns tuple containing the secret key in sk and public key in pk. It guarantees that sk has crypto_box_SECRETKEYBYTES bytes and that pk has crypto_box_PUBLICKEYBYTES bytes. crypto_box_open(...) crypto_box_open(c,n,pk,sk) -> m The crypto_box_open function verifies and decrypts a ciphertext c using the receiver's secret key sk, the sender's public key pk, and a nonce n. The crypto_box_open function returns the resulting plaintext m. The function raises an exception if len(sk) is not crypto_box_SECRETKEYBYTES or if len(pk) is not crypto_box_PUBLICKEYBYTES or if len(n) is not crypto_box_NONCEBYTES. crypto_box_open_afternm(...) crypto_box_open_afternm(c,n,k) -> m The crypto_box_open_afternm function verifies and decrypts a ciphertext c using a secret key k and a nonce n. The crypto_box_open_afternm function returns the resulting plaintext m. If the ciphertext fails verification, crypto_box_open_afternm raises an exception. The function also raises an exception if len(k) is not crypto_box_BEFORENMBYTES, or if len(n) is not crypto_box_NONCEBYTES. crypto_hash(...) crypto_hash(m) -> h The crypto_hash function hashes a message m. It returns a hash h. The output length len(h) is always crypto_hash_BYTES. crypto_hash_sha512(...) crypto_hash_sha512(m) -> h The crypto_hash_sha512 function hashes a message m. It returns a hash h. The output length len(h) is always crypto_hash_sha512_BYTES. crypto_onetimeauth(...) crypto_onetimeauth(m,k) -> a The crypto_onetimeauth function authenticates a message m using a secret key k. The function returns an authenticator a. The authenticator length is always crypto_onetimeauth_BYTES. The function raises an exception if len(k) is not crypto_onetimeauth_KEYBYTES. crypto_onetimeauth_poly1305(...) crypto_onetimeauth_poly1305(m,k) -> a The crypto_onetimeauth_poly1305 function authenticates a message m using a secret key k. The function returns an authenticator a. The authenticator length is always crypto_onetimeauth_poly1305_BYTES. The function raises an exception if len(k) is not crypto_onetimeauth_poly1305_KEYBYTES. crypto_onetimeauth_poly1305_verify(...) crypto_onetimeauth_poly1305_verify(a,m,k) The crypto_onetimeauth_poly1305_verify function checks that: len(k) is crypto_onetimeauth_poly1305_KEYBYTES; len(a) is crypto_onetimeauth_poly1305_BYTES; and a is a correct authenticator of a message m under the secret key k. If any of these checks fail, the function raises an exception. crypto_onetimeauth_verify(...) crypto_onetimeauth_verify(a,m,k) The crypto_onetimeauth_verify function checks that: len(k) is crypto_onetimeauth_KEYBYTES; len(a) is crypto_onetimeauth_BYTES; and a is a correct authenticator of a message m under the secret key k. If any of these checks fail, the function raises an exception. crypto_scalarmult(...) crypto_scalarmult(n) -> q This function multiplies a group element p by an integer n. It returns the resulting group element q of length crypto_scalarmult_BYTES. The function raises an exception if len(p) is not crypto_scalarmult_BYTES. It also raises an exception if len(n) is not crypto_scalarmult_SCALARBYTES. crypto_scalarmult_base(...) crypto_scalarmult_base(n,p) -> q The crypto_scalarmult_base function computes the scalar product of a standard group element and an integer n. It returns the resulting group element q of length crypto_scalarmult_BYTES. It raises an exception if len(n) is not crypto_scalarmult_SCALARBYTES. crypto_scalarmult_curve25519(...) crypto_scalarmult_curve25519(n) -> q This function multiplies a group element p by an integer n. It returns the resulting group element q of length crypto_scalarmult_curve25519_BYTES. The function raises an exception if len(p) is not crypto_scalarmult_curve25519_BYTES. It also raises an exception if len(n) is not crypto_scalarmult_curve25519_SCALARBYTES. crypto_scalarmult_curve25519_base(...) crypto_scalarmult_curve25519_base(n,p) -> q The crypto_scalarmult_curve25519_base function computes the scalar product of a standard group element and an integer n. It returns the resulting group element q of length crypto_scalarmult_curve25519_BYTES. It raises an exception if len(n) is not crypto_scalarmult_curve25519_SCALARBYTES. crypto_secretbox(...) crypto_secretbox(m,n,k) -> c The crypto_secretbox function encrypts and authenticates a message m using a secret key k and a nonce n. The crypto_secretbox function returns the resulting ciphertext c. The function raises an exception if len(k) is not crypto_secretbox_KEYBYTES. The function also raises an exception if len(n) is not crypto_secretbox_NONCEBYTES. crypto_secretbox_open(...) crypto_secretbox_open(c,n,k) -> m The crypto_secretbox_open function verifies and decrypts a ciphertext c using a secret key k and a nonce n. The crypto_secretbox_open function returns the resulting plaintext m. If the ciphertext fails verification, crypto_secretbox_open raises an exception. The function also raises an exception if len(k) is not crypto_secretbox_KEYBYTES, or if len(n) is not crypto_secretbox_NONCEBYTES. crypto_secretbox_xsalsa20poly1305(...) crypto_secretbox_xsalsa20poly1305(m,n,k) -> c The crypto_secretbox_xsalsa20poly1305 function encrypts and authenticates a message m using a secret key k and a nonce n. The crypto_secretbox_xsalsa20poly1305 function returns the resulting ciphertext c. The function raises an exception if len(k) is not crypto_secretbox_xsalsa20poly1305_KEYBYTES. The function also raises an exception if len(n) is not crypto_secretbox_xsalsa20poly1305_NONCEBYTES. crypto_secretbox_xsalsa20poly1305_open(...) crypto_secretbox_xsalsa20poly1305_open(c,n,k) -> m The crypto_secretbox_xsalsa20poly1305_open function verifies and decrypts a ciphertext c using a secret key k and a nonce n. The crypto_secretbox_xsalsa20poly1305_open function returns the resulting plaintext m. If the ciphertext fails verification, crypto_secretbox_xsalsa20poly1305_open raises an exception. The function also raises an exception if len(k) is not crypto_secretbox_xsalsa20poly1305_KEYBYTES, or if len(n) is not crypto_secretbox_xsalsa20poly1305_NONCEBYTES. crypto_sign(...) crypto_sign(m,sk) -> sm The crypto_sign function signs a message m using the sender's secret key sk. The crypto_sign function returns the resulting signed message sm. The function raises an exception if len(sk) is not crypto_sign_SECRETKEYBYTES. crypto_sign_ed25519(...) crypto_sign_ed25519(m,sk) -> sm The crypto_sign_ed25519 function signs a message m using the sender's secret key sk. The crypto_sign_ed25519 function returns the resulting signed message sm. The function raises an exception if len(sk) is not crypto_sign_ed25519_SECRETKEYBYTES. crypto_sign_ed25519_keypair(...) crypto_sign_ed25519_keypair() -> (pk,sk) The crypto_sign_ed25519_keypair function randomly generates a secret key and a corresponding public key. It returns tuple containing the secret key in sk and public key in pk. It guarantees that sk has crypto_sign_ed25519_SECRETKEYBYTES bytes and that pk has crypto_sign_ed25519_PUBLICKEYBYTES bytes. crypto_sign_ed25519_open(...) crypto_sign_ed25519_open(sm,pk) -> m The crypto_sign_ed25519_open function verifies the signature in sm using the receiver's secret key sk. The crypto_sign_ed25519_open function returns the message m. If the signature fails verification, crypto_sign_ed25519_open raises an exception. The function also raises an exception if len(pk) is not crypto_sign_ed25519_PUBLICKEYBYTES. crypto_sign_keypair(...) crypto_sign_keypair() -> (pk,sk) The crypto_sign_keypair function randomly generates a secret key and a corresponding public key. It returns tuple containing the secret key in sk and public key in pk. It guarantees that sk has crypto_sign_SECRETKEYBYTES bytes and that pk has crypto_sign_PUBLICKEYBYTES bytes. crypto_sign_open(...) crypto_sign_open(sm,pk) -> m The crypto_sign_open function verifies the signature in sm using the receiver's secret key sk. The crypto_sign_open function returns the message m. If the signature fails verification, crypto_sign_open raises an exception. The function also raises an exception if len(pk) is not crypto_sign_PUBLICKEYBYTES. crypto_stream(...) crypto_stream(clen,n,k) -> c The crypto_stream function produces a clen-byte stream c as a function of a secret key k and a nonce n. The function raises an exception: if len(k) is not crypto_stream_KEYBYTES; if len(n) is not crypto_stream_NONCEBYTES; if clen is smaller than 0. crypto_stream_salsa20(...) crypto_stream_salsa20(clen,n,k) -> c The crypto_stream_salsa20 function produces a clen-byte stream c as a function of a secret key k and a nonce n. The function raises an exception: if len(k) is not crypto_stream_salsa20_KEYBYTES; if len(n) is not crypto_stream_salsa20_NONCEBYTES; if clen is smaller than 0. crypto_stream_salsa20_xor(...) crypto_stream_salsa20_xor(m,n,k) -> c The crypto_stream_salsa20_xor function encrypts a message m using a secret key k and a nonce n. The crypto_stream_salsa20_xor function returns the ciphertext c. The function raises an exception: if len(k) is not crypto_stream_salsa20_KEYBYTES; if len(n) is not crypto_stream_salsa20_NONCEBYTES. crypto_stream_xor(...) crypto_stream_xor(m,n,k) -> c The crypto_stream_xor function encrypts a message m using a secret key k and a nonce n. The crypto_stream_xor function returns the ciphertext c. The function raises an exception: if len(k) is not crypto_stream_KEYBYTES; if len(n) is not crypto_stream_NONCEBYTES. crypto_stream_xsalsa20(...) crypto_stream_xsalsa20(clen,n,k) -> c The crypto_stream_xsalsa20 function produces a clen-byte stream c as a function of a secret key k and a nonce n. The function raises an exception: if len(k) is not crypto_stream_xsalsa20_KEYBYTES; if len(n) is not crypto_stream_xsalsa20_NONCEBYTES; if clen is smaller than 0. crypto_stream_xsalsa20_xor(...) crypto_stream_xsalsa20_xor(m,n,k) -> c The crypto_stream_xsalsa20_xor function encrypts a message m using a secret key k and a nonce n. The crypto_stream_xsalsa20_xor function returns the ciphertext c. The function raises an exception: if len(k) is not crypto_stream_xsalsa20_KEYBYTES; if len(n) is not crypto_stream_xsalsa20_NONCEBYTES. crypto_verify_16(...) crypto_verify_16(x,y) The crypto_verify_16 function checks that: len(x) is crypto_verify_16_BYTES; len(y) is crypto_verify_16_BYTES; and check if strings x and y has same content. If any of these checks fail, the function raises an exception. The time taken by crypto_verify_16 is independent of the contents of x and y. crypto_verify_32(...) crypto_verify_32(x,y) The crypto_verify_32 function checks that: len(x) is crypto_verify_32_BYTES; len(y) is crypto_verify_32_BYTES; and check if strings x and y has same content. If any of these checks fail, the function raises an exception. The time taken by crypto_verify_32 is independent of the contents of x and y. randombytes(...) randombytes(len) -> str Return a string of 'len' random bytes suitable for cryptographic use. DATA crypto_box_BEFORENMBYTES = 32 crypto_box_BOXZEROBYTES = 16 crypto_box_IMPLEMENTATION = 'crypto_box/curve25519xsalsa20poly1305/twe... crypto_box_NONCEBYTES = 24 crypto_box_PRIMITIVE = 'curve25519xsalsa20poly1305' crypto_box_PUBLICKEYBYTES = 32 crypto_box_SECRETKEYBYTES = 32 crypto_box_VERSION = '-' crypto_box_ZEROBYTES = 32 crypto_box_curve25519xsalsa20poly1305_BEFORENMBYTES = 32 crypto_box_curve25519xsalsa20poly1305_BOXZEROBYTES = 16 crypto_box_curve25519xsalsa20poly1305_IMPLEMENTATION = 'crypto_box/cur... crypto_box_curve25519xsalsa20poly1305_NONCEBYTES = 24 crypto_box_curve25519xsalsa20poly1305_PUBLICKEYBYTES = 32 crypto_box_curve25519xsalsa20poly1305_SECRETKEYBYTES = 32 crypto_box_curve25519xsalsa20poly1305_VERSION = '-' crypto_box_curve25519xsalsa20poly1305_ZEROBYTES = 32 crypto_hash_BYTES = 64 crypto_hash_IMPLEMENTATION = 'crypto_hash/sha512/tweet' crypto_hash_PRIMITIVE = 'sha512' crypto_hash_VERSION = '-' crypto_hash_sha512_BYTES = 64 crypto_hash_sha512_IMPLEMENTATION = 'crypto_hash/sha512/tweet' crypto_hash_sha512_VERSION = '-' crypto_onetimeauth_BYTES = 16 crypto_onetimeauth_IMPLEMENTATION = 'crypto_onetimeauth/poly1305/tweet... crypto_onetimeauth_KEYBYTES = 32 crypto_onetimeauth_PRIMITIVE = 'poly1305' crypto_onetimeauth_VERSION = '-' crypto_onetimeauth_poly1305_BYTES = 16 crypto_onetimeauth_poly1305_IMPLEMENTATION = 'crypto_onetimeauth/poly1... crypto_onetimeauth_poly1305_KEYBYTES = 32 crypto_onetimeauth_poly1305_VERSION = '-' crypto_scalarmult_BYTES = 32 crypto_scalarmult_IMPLEMENTATION = 'crypto_scalarmult/curve25519/tweet... crypto_scalarmult_PRIMITIVE = 'curve25519' crypto_scalarmult_SCALARBYTES = 32 crypto_scalarmult_VERSION = '-' crypto_scalarmult_curve25519_BYTES = 32 crypto_scalarmult_curve25519_IMPLEMENTATION = 'crypto_scalarmult/curve... crypto_scalarmult_curve25519_SCALARBYTES = 32 crypto_scalarmult_curve25519_VERSION = '-' crypto_secretbox_BOXZEROBYTES = 16 crypto_secretbox_IMPLEMENTATION = 'crypto_secretbox/xsalsa20poly1305/t... crypto_secretbox_KEYBYTES = 32 crypto_secretbox_NONCEBYTES = 24 crypto_secretbox_PRIMITIVE = 'xsalsa20poly1305' crypto_secretbox_VERSION = '-' crypto_secretbox_ZEROBYTES = 32 crypto_secretbox_xsalsa20poly1305_BOXZEROBYTES = 16 crypto_secretbox_xsalsa20poly1305_IMPLEMENTATION = 'crypto_secretbox/x... crypto_secretbox_xsalsa20poly1305_KEYBYTES = 32 crypto_secretbox_xsalsa20poly1305_NONCEBYTES = 24 crypto_secretbox_xsalsa20poly1305_VERSION = '-' crypto_secretbox_xsalsa20poly1305_ZEROBYTES = 32 crypto_sign_BYTES = 64 crypto_sign_IMPLEMENTATION = 'crypto_sign/ed25519/tweet' crypto_sign_PRIMITIVE = 'ed25519' crypto_sign_PUBLICKEYBYTES = 32 crypto_sign_SECRETKEYBYTES = 64 crypto_sign_VERSION = '-' crypto_sign_ed25519_BYTES = 64 crypto_sign_ed25519_IMPLEMENTATION = 'crypto_sign/ed25519/tweet' crypto_sign_ed25519_PUBLICKEYBYTES = 32 crypto_sign_ed25519_SECRETKEYBYTES = 64 crypto_sign_ed25519_VERSION = '-' crypto_stream_IMPLEMENTATION = 'crypto_stream/xsalsa20/tweet' crypto_stream_KEYBYTES = 32 crypto_stream_NONCEBYTES = 24 crypto_stream_PRIMITIVE = 'xsalsa20' crypto_stream_VERSION = '-' crypto_stream_salsa20_IMPLEMENTATION = 'crypto_stream/salsa20/tweet' crypto_stream_salsa20_KEYBYTES = 32 crypto_stream_salsa20_NONCEBYTES = 8 crypto_stream_salsa20_VERSION = '-' crypto_stream_xsalsa20_IMPLEMENTATION = 'crypto_stream/xsalsa20/tweet' crypto_stream_xsalsa20_KEYBYTES = 32 crypto_stream_xsalsa20_NONCEBYTES = 24 crypto_stream_xsalsa20_VERSION = '-' crypto_verify_16_BYTES = 16 crypto_verify_16_IMPLEMENTATION = 'crypto_verify/16/tweet' crypto_verify_16_VERSION = '-' crypto_verify_32_BYTES = 32 crypto_verify_32_IMPLEMENTATION = 'crypto_verify/32/tweet' crypto_verify_32_VERSION = '-'