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