├── LICENSE ├── README.md ├── ch3-hashing ├── scrypt-generate.js ├── scrypt-verify.js ├── sha2-stream.js └── sha2.js ├── ch4-symmetric-encryption ├── aes-256-cbc.js ├── aes-256-gcm.js ├── aes-stream.js ├── argon2-kdf.js ├── chacha20-poly1305.js └── key-wrap.js ├── ch5-asymmetric-and-hybrid-encryption ├── ecdh-client.js ├── ecdh-server.js ├── ecdh.js ├── ecies-client.js ├── ecies-server.js ├── ecies.js ├── rsa-encrypt.js ├── rsa-gen-keypair.js └── rsa-hybrid-encrypt.js ├── ch6-digital-signatures ├── signatures-ed25519.js ├── signatures-prime256v1.js ├── signatures-rsa-stream.js └── signatures-rsa.js ├── ch7-ch8-browser-cryptography ├── asymmetric-rsa.js ├── hash-argon2.js ├── hash-sha256.js ├── hybrid-ecies.js ├── hybrid-rsa.js ├── key-derivation-argon2.js ├── key-exchange-ecdh-sha256.js ├── key-exchange-ecdh.js ├── key-from-pem.js ├── pem-from-key.js ├── sign-ecdsa.js ├── sign-rsa.js ├── symmetric-aes-cbc.js ├── symmetric-aes-gcm.js └── symmetric-aes-kw.js ├── playground ├── README.md ├── codeswing-install.png ├── codeswing.json ├── index.html ├── screenshot.png └── script.mjs └── test-files ├── .gitignore └── alessandro-porri-yl4y4l86gEk-unsplash.jpg /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/README.md -------------------------------------------------------------------------------- /ch3-hashing/scrypt-generate.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch3-hashing/scrypt-generate.js -------------------------------------------------------------------------------- /ch3-hashing/scrypt-verify.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch3-hashing/scrypt-verify.js -------------------------------------------------------------------------------- /ch3-hashing/sha2-stream.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch3-hashing/sha2-stream.js -------------------------------------------------------------------------------- /ch3-hashing/sha2.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch3-hashing/sha2.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/aes-256-cbc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/aes-256-cbc.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/aes-256-gcm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/aes-256-gcm.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/aes-stream.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/aes-stream.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/argon2-kdf.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/argon2-kdf.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/chacha20-poly1305.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/chacha20-poly1305.js -------------------------------------------------------------------------------- /ch4-symmetric-encryption/key-wrap.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch4-symmetric-encryption/key-wrap.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecdh-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecdh-client.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecdh-server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecdh-server.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecdh.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecdh.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecies-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecies-client.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecies-server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecies-server.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/ecies.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/ecies.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/rsa-encrypt.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/rsa-encrypt.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/rsa-gen-keypair.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/rsa-gen-keypair.js -------------------------------------------------------------------------------- /ch5-asymmetric-and-hybrid-encryption/rsa-hybrid-encrypt.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch5-asymmetric-and-hybrid-encryption/rsa-hybrid-encrypt.js -------------------------------------------------------------------------------- /ch6-digital-signatures/signatures-ed25519.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch6-digital-signatures/signatures-ed25519.js -------------------------------------------------------------------------------- /ch6-digital-signatures/signatures-prime256v1.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch6-digital-signatures/signatures-prime256v1.js -------------------------------------------------------------------------------- /ch6-digital-signatures/signatures-rsa-stream.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch6-digital-signatures/signatures-rsa-stream.js -------------------------------------------------------------------------------- /ch6-digital-signatures/signatures-rsa.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch6-digital-signatures/signatures-rsa.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/asymmetric-rsa.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/asymmetric-rsa.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/hash-argon2.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/hash-argon2.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/hash-sha256.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/hash-sha256.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/hybrid-ecies.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/hybrid-ecies.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/hybrid-rsa.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/hybrid-rsa.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/key-derivation-argon2.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/key-derivation-argon2.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/key-exchange-ecdh-sha256.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/key-exchange-ecdh-sha256.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/key-exchange-ecdh.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/key-exchange-ecdh.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/key-from-pem.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/key-from-pem.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/pem-from-key.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/pem-from-key.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/sign-ecdsa.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/sign-ecdsa.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/sign-rsa.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/sign-rsa.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/symmetric-aes-cbc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/symmetric-aes-cbc.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/symmetric-aes-gcm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/symmetric-aes-gcm.js -------------------------------------------------------------------------------- /ch7-ch8-browser-cryptography/symmetric-aes-kw.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/ch7-ch8-browser-cryptography/symmetric-aes-kw.js -------------------------------------------------------------------------------- /playground/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/README.md -------------------------------------------------------------------------------- /playground/codeswing-install.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/codeswing-install.png -------------------------------------------------------------------------------- /playground/codeswing.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/codeswing.json -------------------------------------------------------------------------------- /playground/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/index.html -------------------------------------------------------------------------------- /playground/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/screenshot.png -------------------------------------------------------------------------------- /playground/script.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/playground/script.mjs -------------------------------------------------------------------------------- /test-files/.gitignore: -------------------------------------------------------------------------------- 1 | *.enc 2 | *.orig -------------------------------------------------------------------------------- /test-files/alessandro-porri-yl4y4l86gEk-unsplash.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/PacktPublishing/Essential-Cryptography-for-JavaScript-Developers/HEAD/test-files/alessandro-porri-yl4y4l86gEk-unsplash.jpg --------------------------------------------------------------------------------