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

      7.5 ASN.1 Identifiers

    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