Giter VIP home page Giter VIP logo

openssl's Introduction

OpenSSL

OpenSSL client and server from scratch

Based on the posts at OpenSSL client and server from scratch to implement http/https server and client.

Added support of:

  • Client certificate verification.

  • CRL verification.

  • http_https

    • http server and client
    • https server and client
      • ./https-server.out ca
      • ./https-client.out localhost 8080 ca client
      • ./https-client.out localhost 8080 ca client2
    • client certificate verification
      • load and verify certificate revokation list
        • X509_load_crl_file
        • X509_STORE_set_flags
      • if certificate has been revoked, end the connection

Examples of using openssl

OpenSSL wiki

  • EVP
    • SymmetricCipher
      • EVP_CIPHER_CTX_new(), EVP_CIPHER_CTX_free()
      • EVP_EncryptInit_ex(), EVP_DecryptInit_ex()
      • EVP_EncryptUpdate(), EVP_DecryptUpdate()
      • EVP_EncryptFinal_ex(), EVP_DecryptFinal_ex()
    • AuthenticatedSymmetricCipher
      • EVP_CIPHER_CTX_ctrl()
        • EVP_CTRL_'Algorithm'SET/GET'Param'
    • AsymmetricEnvelope
      • EVP_SealInit(), EVP_SealUpdate(), EVP_SealFinal()
      • EVP_OpenInit(), EVP_OpenUpdate(), EVP_OpenFinal()
    • Key and Parameter Generation
      • EVP_PKEY_EC (for ECDSA and ECDH keys), EVP_PKEY_DSA, EVP_PKEY_DH
      • Parameter
        • EVP_PKEY_CTX_new_id(), EVP_PKEY_paramgen_init()
        • EVP_PKEY_CTX_set_ec_paramgen_curve_nid(), EVP_PKEY_CTX_set_dsa_paramgen_bits(), EVP_PKEY_CTX_set_dh_paramgen_prime_len()
        • EVP_PKEY_paramgen()
      • Key
        • EVP_PKEY_CTX_new(), EVP_PKEY_CTX_new_id(), EVP_PKEY_keygen_init(), EVP_PKEY_CTX_set_rsa_keygen_bits(), EVP_PKEY_keygen()
      • HMAC and CMAC
        • EVP_PKEY_CTX_ctrl()
        • EVP_MD_CTX_new(), EVP_DigestSignInit(), EVP_DigestSignUpdate(), EVP_DigestSignFinal(), EVP_MD_CTX_free()
        • EVP_PKEY_new_mac_key()
    • Diffie Hellman
      • Low-level
        • DH_new(), DH_generate_parameters_ex(), DH_check(), DH_generate_key(), DH_compute_key()
      • evp
        • EVP_PKEY_derive_init(), EVP_PKEY_derive_set_peer(), EVP_PKEY_derive(), EVP_PKEY_derive()
    • Digest
      • EVP_DigestInit_ex(), EVP_DigestUpdate(), EVP_DigestFinal_ex()
    • Key Derivation
      • EVP_KDF, EVP_KDF_CTX, EVP_KDF_fetch(), EVP_KDF_CTX_new(), EVP_KDF_free(), EVP_KDF_CTX_set_params(), EVP_KDF_derive(), EVP_KDF_CTX_free()
    • SymmetricCryptography

code-and-ciphers

  • Simplified Lorenz Cipher Machine

openssl's People

Contributors

ya-ming avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.