Skip to main content

python libsodium wrapper

Project description

This is a very simple wrapper around libsodium masquerading as nacl.

[![Build Status](https://travis-ci.org/stef/pysodium.svg?branch=master)](https://travis-ci.org/stef/pysodium)

This wrapper requires a pre-installed libsodium from:

https://github.com/jedisct1/libsodium

then it provides access to the following functions:

` crypto_aead_aegis128l_decrypt(ciphertext, ad, nonce, key) crypto_aead_aegis128l_encrypt(message, ad, nonce, key) crypto_aead_aegis128l_decrypt_detached(ciphertext, mac, ad, nonce, key) crypto_aead_aegis128l_encrypt_detached(message, ad, nonce, key) crypto_aead_aegis256_decrypt(ciphertext, ad, nonce, key) crypto_aead_aegis256_encrypt(message, ad, nonce, key) crypto_aead_aegis256_decrypt_detached(ciphertext, mac, ad, nonce, key) crypto_aead_aegis256_encrypt_detached(message, ad, nonce, key) crypto_aead_chacha20poly1305_decrypt(ciphertext, ad, nonce, key) crypto_aead_chacha20poly1305_encrypt(message, ad, nonce, key) crypto_aead_chacha20poly1305_decrypt_detached(ciphertext, mac, ad, nonce, key) crypto_aead_chacha20poly1305_encrypt_detached(message, ad, nonce, key) crypto_aead_chacha20poly1305_ietf_decrypt(ciphertext, ad, nonce, key) crypto_aead_chacha20poly1305_ietf_encrypt(message, ad, nonce, key) crypto_aead_chacha20poly1305_ietf_decrypt_detached(ciphertext, mac, ad, nonce, key) crypto_aead_chacha20poly1305_ietf_encrypt_detached(message, ad, nonce, key) crypto_aead_xchacha20poly1305_ietf_decrypt(ciphertext, ad, nonce, key) crypto_aead_xchacha20poly1305_ietf_encrypt(message, ad, nonce, key) crypto_auth(message, key) crypto_auth_verify(tag, message, key) crypto_box_afternm(msg, nonce, k) crypto_box_beforenm(pk, sk) crypto_box_detached(msg, nonce, pk, sk) crypto_box_keypair() crypto_box(msg, nonce, pk, sk) crypto_box_open_afternm(c, nonce, k) crypto_box_open(c, nonce, pk, sk) crypto_box_open_detached(c, mac, nonce, pk, sk) crypto_box_seal(msg, pk) crypto_box_seal_open(c, pk, sk) crypto_box_seed_keypair(seed) crypto_generichash_blake2b_salt_personal(message, outlen = crypto_generichash_blake2b_BYTES, key = b'', salt = b'', personal = b'') crypto_generichash_final(state, outlen=crypto_generichash_BYTES) crypto_generichash_init(outlen=crypto_generichash_BYTES, k=b'') crypto_generichash(m, k=b'', outlen=crypto_generichash_BYTES) crypto_generichash_update(state, m) crypto_hash_sha256(message) crypto_hash_sha512(message) crypto_hash_sha512_init() crypto_hash_sha512_update(state, data) crypto_hash_sha512_final(state) crypto_kx_client_session_keys(client_pk, client_sk, server_pk) crypto_kx_keypair() crypto_kx_server_session_keys(server_pk, server_sk, client_pk) crypto_pwhash(outlen, passwd, salt, opslimit, memlimit, alg) crypto_pwhash_scryptsalsa208sha256(outlen, passwd, salt, opslimit, memlimit) crypto_pwhash_scryptsalsa208sha256_str(passwd, opslimit, memlimit) crypto_pwhash_scryptsalsa208sha256_str_verify(stored, passwd) crypto_pwhash_str(passwd, opslimit, memlimit) crypto_pwhash_str_verify(pstr, passwd) crypto_scalarmult_base(n) crypto_scalarmult_curve25519_base(n) crypto_scalarmult_curve25519(n, p) crypto_secretbox(msg, nonce, k) crypto_secretbox_detached(msg, nonce, k) crypto_secretbox_open(c, nonce, k) crypto_secretbox_open_detached(c, mac, nonce, k) crypto_secretstream_xchacha20poly1305_keygen(): crypto_secretstream_xchacha20poly1305_init_push(key): crypto_secretstream_xchacha20poly1305_init_pull(header, key): crypto_secretstream_xchacha20poly1305_rekey(state): crypto_secretstream_xchacha20poly1305_push(state, message, ad, tag): crypto_secretstream_xchacha20poly1305_pull(state, ciphertext, ad): crypto_sign_init() crypto_sign_update(state, m) crypto_sign_final_create(state, sk) crypto_sign_final_verify(state, sig, pk) crypto_sign_detached(m, sk) crypto_sign_keypair() crypto_sign(m, sk) crypto_sign_open(sm, pk) crypto_sign_pk_to_box_pk(pk) crypto_sign_seed_keypair(seed) crypto_sign_sk_to_box_sk(sk) crypto_sign_sk_to_pk(sk) crypto_sign_sk_to_seed(sk) crypto_sign_verify_detached(sig, msg, pk) crypto_stream_chacha20_xor(message, nonce, key) crypto_stream_chacha20_xor_ic(message, nonce, initial_counter, key) crypto_stream_chacha20_ietf_xor(message, nonce, key) crypto_stream_chacha20_ietf_xor_ic(message, nonce, initial_counter, key) crypto_stream_xchacha20_xor(message, nonce, key) crypto_stream_xchacha20_xor_ic(message, nonce, initial_counter, key) crypto_stream(cnt, nonce=None, key=None) crypto_stream_xor(msg, cnt, nonce=None, key=None) randombytes(size) sodium_increment(bytes) crypto_core_ristretto255_is_valid_point(p) crypto_core_ristretto255_from_hash(r) crypto_scalarmult_ristretto255(n, p) crypto_scalarmult_ristretto255_base(n) crypto_core_ristretto255_scalar_random() crypto_core_ristretto255_scalar_invert(s) crypto_core_ristretto255_scalar_reduce(s) crypto_core_ristretto255_add(p, q) crypto_core_ristretto255_sub(p,q) crypto_core_ristretto255_random() crypto_core_ristretto255_scalar_negate(s) crypto_core_ristretto255_scalar_complement(s) crypto_core_ristretto255_scalar_add(x,y) crypto_core_ristretto255_scalar_sub(x,y) crypto_core_ristretto255_scalar_mul(x,y) crypto_auth_hmacsha256_keygen crypto_auth_hmacsha256 crypto_auth_hmacsha256_verify crypto_auth_hmacsha512_keygen crypto_auth_hmacsha512 crypto_auth_hmacsha512_verify crypto_auth_hmacsha512256_keygen crypto_auth_hmacsha512256 crypto_auth_hmacsha512256_verify crypto_kdf_derive_from_key(subkey_len, subkey_id, ctx, key) crypto_kdf_keygen() crypto_kdf_hkdf_sha256_extract_init(salt=b'') crypto_kdf_hkdf_sha256_extract_update(state, ikm=b'') crypto_kdf_hkdf_sha256_extract_final(state) crypto_kdf_hkdf_sha256_extract(salt=b'', ikm=b'') crypto_kdf_hkdf_sha256_keygen() crypto_kdf_hkdf_sha256_expand(outlen, prk, ctx=b'') crypto_kdf_hkdf_sha512_extract_init(salt=b'') crypto_kdf_hkdf_sha512_extract_update(state, ikm=b'') crypto_kdf_hkdf_sha512_extract_final(state) crypto_kdf_hkdf_sha512_extract(salt=b'', ikm=b'') crypto_kdf_hkdf_sha512_keygen() crypto_kdf_hkdf_sha512_expand(outlen, prk, ctx=b'') `

Constants:

` crypto_aead_chacha20poly1305_ABYTES crypto_aead_chacha20poly1305_KEYBYTES crypto_aead_chacha20poly1305_NPUBBYTES crypto_aead_chacha20poly1305_ietf_KEYBYTES crypto_aead_chacha20poly1305_ietf_NPUBBYTES crypto_aead_chacha20poly1305_ietf_ABYTES crypto_aead_xchacha20poly1305_ietf_KEYBYTES crypto_aead_xchacha20poly1305_ietf_NPUBBYTES crypto_aead_xchacha20poly1305_ietf_ABYTES crypto_auth_BYTES crypto_auth_KEYBYTES crypto_box_BEFORENMBYTES crypto_box_BOXZEROBYTES crypto_box_MACBYTES crypto_box_NONCEBYTES crypto_box_PUBLICKEYBYTES crypto_box_SEALBYTES crypto_box_SECRETKEYBYTES crypto_box_SEEDBYTES crypto_box_ZEROBYTES crypto_generichash_KEYBYTES_MAX crypto_generichash_BYTES crypto_generichash_BYTES_MAX crypto_generichash_BYTES_MIN crypto_generichash_STATEBYTES crypto_generichash_blake2b_BYTES crypto_generichash_blake2b_BYTES_MAX crypto_generichash_blake2b_BYTES_MIN crypto_generichash_blake2b_KEYBYTES_MAX crypto_generichash_blake2b_PERSONALBYTES crypto_generichash_blake2b_SALTBYTES crypto_hash_sha256_BYTES crypto_hash_sha512_BYTES crypto_hash_sha512_STATEBYTES crypto_kx_PUBLICKEYBYTES crypto_kx_SECRETKEYBYTES crypto_kx_SESSIONKEYBYTES crypto_pwhash_ALG_DEFAULT crypto_pwhash_ALG_ARGON2I13 crypto_pwhash_ALG_ARGON2ID13 crypto_pwhash_BYTES_MAX crypto_pwhash_BYTES_MIN crypto_pwhash_MEMLIMIT_MAX crypto_pwhash_MEMLIMIT_MIN crypto_pwhash_MEMLIMIT_INTERACTIVE crypto_pwhash_MEMLIMIT_MODERATE crypto_pwhash_MEMLIMIT_SENSITIVE crypto_pwhash_OPSLIMIT_MAX crypto_pwhash_OPSLIMIT_MIN crypto_pwhash_OPSLIMIT_INTERACTIVE crypto_pwhash_OPSLIMIT_MODERATE crypto_pwhash_OPSLIMIT_SENSITIVE crypto_pwhash_PASSWD_MAX crypto_pwhash_PASSWD_MIN crypto_pwhash_argon2i_MEMLIMIT_INTERACTIVE crypto_pwhash_argon2i_MEMLIMIT_MODERATE crypto_pwhash_argon2i_MEMLIMIT_SENSITIVE crypto_pwhash_argon2i_OPSLIMIT_INTERACTIVE crypto_pwhash_argon2i_OPSLIMIT_MODERATE crypto_pwhash_argon2i_OPSLIMIT_SENSITIVE crypto_pwhash_argon2id_MEMLIMIT_INTERACTIVE crypto_pwhash_argon2id_MEMLIMIT_MODERATE crypto_pwhash_argon2id_MEMLIMIT_SENSITIVE crypto_pwhash_argon2id_OPSLIMIT_INTERACTIVE crypto_pwhash_argon2id_OPSLIMIT_MODERATE crypto_pwhash_argon2id_OPSLIMIT_SENSITIVE crypto_pwhash_SALTBYTES crypto_pwhash_STRBYTES crypto_pwhash_scryptsalsa208sha256_BYTES_MAX crypto_pwhash_scryptsalsa208sha256_BYTES_MIN crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MAX crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_MIN crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_INTERACTIVE crypto_pwhash_scryptsalsa208sha256_MEMLIMIT_SENSITIVE crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MAX crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_MIN crypto_pwhash_scryptsalsa208sha256_OPSLIMIT_INTERACTIVE 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_scalarmult_BYTES crypto_scalarmult_SCALARBYTES crypto_scalarmult_curve25519_BYTES crypto_secretbox_BOXZEROBYTES crypto_secretbox_KEYBYTES crypto_secretbox_KEYBYTES crypto_secretbox_MACBYTES crypto_secretbox_NONCEBYTES crypto_secretbox_ZEROBYTES crypto_secretstream_xchacha20poly1305_STATEBYTES crypto_secretstream_xchacha20poly1305_ABYTES crypto_secretstream_xchacha20poly1305_HEADERBYTES crypto_secretstream_xchacha20poly1305_KEYBYTES crypto_secretstream_xchacha20poly1305_MESSAGEBYTES_MAX crypto_secretstream_xchacha20poly1305_TAG_MESSAGE crypto_secretstream_xchacha20poly1305_TAG_PUSH crypto_secretstream_xchacha20poly1305_TAG_REKEY crypto_secretstream_xchacha20poly1305_TAG_FINAL crypto_sign_BYTES crypto_sign_PUBLICKEYBYTES crypto_sign_SECRETKEYBYTES crypto_sign_SEEDBYTES crypto_sign_ed25519_PUBLICKEYBYTES crypto_sign_ed25519_SECRETKEYBYTES crypto_stream_KEYBYTES crypto_stream_NONCEBYTES crypto_stream_chacha20_NONCEBYTES crypto_stream_chacha20_KEYBYTES crypto_stream_chacha20_ietf_NONCEBYTES crypto_stream_chacha20_ietf_KEYBYTES crypto_stream_xchacha20_NONCEBYTES crypto_stream_xchacha20_KEYBYTES crypto_core_ristretto255_BYTES crypto_core_ristretto255_HASHBYTES crypto_core_ristretto255_SCALARBYTES crypto_core_ristretto255_NONREDUCEDSCALARBYTES crypto_auth_hmacsha256_BYTES crypto_auth_hmacsha256_KEYBYTES crypto_auth_hmacsha512_BYTES crypto_auth_hmacsha512_KEYBYTES crypto_auth_hmacsha512256_BYTES crypto_auth_hmacsha512256_KEYBYTES crypto_kdf_BYTES_MIN crypto_kdf_BYTES_MAX crypto_kdf_CONTEXTBYTES crypto_kdf_KEYBYTES crypto_kdf_hkdf_sha256_KEYBYTES crypto_kdf_hkdf_sha256_BYTES_MIN crypto_kdf_hkdf_sha256_BYTES_MAX crypto_kdf_hkdf_sha256_STATEBYTES `

Note

most of the the *_easy functions are not implemented as the “non-easy” functions provide already the “easy” interface, which hides the placement of buffers in memory, which makes little sense in python, so this wrapper handles this.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pysodium-0.7.18.tar.gz (26.9 kB view details)

Uploaded Source

File details

Details for the file pysodium-0.7.18.tar.gz.

File metadata

  • Download URL: pysodium-0.7.18.tar.gz
  • Upload date:
  • Size: 26.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for pysodium-0.7.18.tar.gz
Algorithm Hash digest
SHA256 781ada024456ac74c411193b82d94018c85c94130ea01a22dbec48b8ff458b07
MD5 9882f33d6395d4a078dee43ae6b8b83f
BLAKE2b-256 d7a5bcb82a6056bc8ad0dbfdb0956ae1ff3b8eb9dd76c187723e82a3c5678982

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page