Home | History | Annotate | Line # | Download | only in demos
      1 OpenSSL Demonstration Applications
      2 
      3 This folder contains source code that demonstrates the proper use of the OpenSSL
      4 library API.
      5 
      6 Note: Makefiles are provided in the demo subfolders to demonstrate how to build
      7 them, but are not frequently used.  Configure openssl with enable-demos to build
      8 them automatically through the perl based build system
      9 
     10 bio:                   Demonstration of a simple TLS client and server
     11 
     12 certs:                 Demonstration of creating certs, using OCSP
     13 
     14 cipher:
     15 aesgcm.c               Demonstration of symmetric cipher GCM mode encrypt/decrypt
     16 aesccm.c               Demonstration of symmetric cipher CCM mode encrypt/decrypt
     17 ariacbc.c              Demonstration of symmetric cipher CBC mode encrypt/decrypt
     18 
     19 cms:                   Demonstrations related to the Cryptographic Message
     20                        Syntax (CMS) standard
     21 
     22 digest:
     23 EVP_MD_demo.c          Compute a digest from multiple buffers
     24 EVP_MD_stdin.c         Compute a digest with data read from stdin
     25 EVP_MD_xof.c           Compute a digest using the SHAKE256 XOF
     26 EVP_f_md.c             Compute a digest using BIO and EVP_f_md
     27 
     28 encode:
     29 rsa_encode.c           Encode and decode PEM-encoded RSA keys
     30 
     31 encrypt:
     32 rsa_encrypt.c          Encrypt and decrypt data using an RSA keypair.
     33 
     34 guide:                   Sample code from the OpenSSL Guide tutorials. See
     35                          the oss-guide-quic-introduction(7) man page.
     36 quic-client-block.c:     A simple blocking QUIC client
     37 quic-client-non-block.c: A simple non-blocking QUIC client
     38 quic-multi-stream.c:     A simple QUIC client using multiple streams
     39 tls-client-block.c:      A simple blocking SSL/TLS client
     40 tls-client-non-block.c:  A simple non-blocking SSL/TLS client
     41 
     42 http3:                 Demonstration of how to use OpenSSL's QUIC capabilities
     43                        for HTTP/3.
     44 
     45 kdf:
     46 hkdf.c                 Demonstration of HMAC based key derivation
     47 pbkdf2.c               Demonstration of PBKDF2 password based key derivation
     48 scrypt.c               Demonstration of SCRYPT password based key derivation
     49 
     50 keyexch:
     51 x25519.c               Demonstration of X25519 based key exchange
     52 ecdh.c                 Demonstration of ECDH key exchange
     53 
     54 mac:
     55 gmac.c                 Demonstration of GMAC message authentication
     56 poly1305.c             Demonstration of Poly1305-AES message authentication
     57 siphash.c              Demonstration of SIPHASH message authentication
     58 
     59 pkcs12:
     60 pkread.c               Print out a description of a PKCS12 file.
     61 pkwrite.c              Add a password to an existing PKCS12 file.
     62 
     63 pkey:
     64 EVP_PKEY_EC_keygen.c           Generate an EC key.
     65 EVP_PKEY_RSA_keygen.c          Generate an RSA key.
     66 EVP_PKEY_DSA_keygen.c          Generate a DSA key.
     67 EVP_PKEY_DSA_paramgen.c        Generate a DSA param key.
     68 EVP_PKEY_DSA_paramvalidate.c   Validate a DSA param key.
     69 EVP_PKEY_DSA_paramfromdata.c   Load a DSA param key using raw data.
     70 
     71 signature:
     72 EVP_EC_Signature_demo.c   Compute and verify an EC signature.
     73 EVP_DSA_Signature_demo.c  Compute and verify a DSA signature.
     74 EVP_ED_Signature_demo.c   Compute and verify an ED25519 signature.
     75 rsa_pss_direct.c          Compute and verify an RSA-PSS signature from a hash
     76 rsa_pss_hash.c            Compute and verify an RSA-PSS signature over a buffer
     77 
     78 smime:                 Demonstrations related to S/MIME
     79 
     80 sslecho:
     81 main.c                 Simple SSL/TLS echo client/server.
     82