On this page:
Crypto:   Cryptographic Operations
1.1

Crypto: Cryptographic Operations🔗ℹ

Ryan Culpepper <ryanc@racket-lang.org>

 (require crypto) package: crypto-lib

This library provides an interface for cryptographic operations, including message digests, symmetric-key encryption, and public-key signatures, encryption, and key agreement.

Development Development of this library is hosted by GitHub at the following project page:

https://github.com/rmculpepper/crypto

Acknowledgements This library is partly based on the (planet vyzo/crypto) library by Dimitris Vyzovitis.

Copying This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License and GNU Lesser General Public License for more details.

    1 Introduction to the Crypto Library

      1.1 Cryptography Examples

      1.2 Public-Key Cryptography Examples

    2 Cryptography Factories

      2.1 All Factories

      2.2 Libcrypto (OpenSSL)

      2.3 GCrypt

      2.4 Nettle

      2.5 Sodium

      2.6 B2 (Blake2)

      2.7 Argon2

      2.8 Decaf

    3 Message Digests

      3.1 High-level Digest Functions

      3.2 Low-level Digest Functions

      Bibliography

    4 Symmetric Encryption

      4.1 High-level Cipher Operations

      4.2 Low-level Cipher Operations

    5 Public-Key Cryptography

      5.1 PK Keys and Parameters

      5.2 PK Signatures

      5.3 PK Encryption

      5.4 PK Key Agreement

      5.5 PK External Representations

      5.6 PKCS #8 Encrypted Private Keys

      Bibliography

    6 Key Derivation and Password Hashing

      Bibliography

    7 Miscellaneous Utilities

      7.1 Main Utilities

        7.1.1 Input to Cryptographic Operations

        7.1.2 Random Bytes

        7.1.3 Security Strength Levels

      7.2 PEM Reading

      7.3 Bech32 Encoding and Decoding

      7.4 age Encryption

    8 Miscellaneous Notes

      8.1 Notes on Cryptography Providers

        8.1.1 CSPRNG Initialization

        8.1.2 Libcrypto Quirks

        8.1.3 GCrypt Quirks

        8.1.4 Sodium Quirks