[openssl-commits] [openssl-book] master update
Matt Caswell
matt at openssl.org
Wed Dec 13 17:27:46 UTC 2017
The branch master has been updated
via 523d808ecb4386123ac3c4238c8e2fae476597f6 (commit)
via 960bb1c4d3dc90c921af5ae9558a63e987156c80 (commit)
from d17bfe6558315ad33d2d4bc2ba3ab9791ac8ff47 (commit)
- Log -----------------------------------------------------------------
commit 523d808ecb4386123ac3c4238c8e2fae476597f6
Author: Matt Caswell <matt at openssl.org>
Date: Wed Nov 8 09:52:21 2017 +0000
Change the history outline
Don't focus on heartbleed itself - that was just the trigger. Focus on what
happened to the team.
Reviewed-by: Ben Kaduk <kaduk at mit.edu>
Reviewed-by: Tim Hudson <tjh at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2)
commit 960bb1c4d3dc90c921af5ae9558a63e987156c80
Author: Matt Caswell <matt at openssl.org>
Date: Mon Oct 30 17:49:26 2017 +0000
Add a first draft book outline
Reviewed-by: Ben Kaduk <kaduk at mit.edu>
Reviewed-by: Tim Hudson <tjh at openssl.org>
(Merged from https://github.com/openssl/openssl/pull/2)
-----------------------------------------------------------------------
Summary of changes:
{introduction => foundations}/about/about.tex | 0
openssl-book.tex | 256 +++++++++++++++++++++++++-
2 files changed, 251 insertions(+), 5 deletions(-)
rename {introduction => foundations}/about/about.tex (100%)
diff --git a/introduction/about/about.tex b/foundations/about/about.tex
similarity index 100%
rename from introduction/about/about.tex
rename to foundations/about/about.tex
diff --git a/openssl-book.tex b/openssl-book.tex
index 61dfba0..c4554f3 100644
--- a/openssl-book.tex
+++ b/openssl-book.tex
@@ -8,6 +8,7 @@
\usepackage[hidelinks]{hyperref}
\usepackage{listings}
\usepackage{xcolor}
+\usepackage{outline}
\newcommand\todo[1]{\textcolor{red}{[TODO:#1]}}
\definecolor{LightGray}{gray}{0.9}
\lstdefinestyle{osslc}{
@@ -27,14 +28,259 @@
\maketitle
\tableofcontents
-\part{Introduction}
+\part{Foundations}
-\include{introduction/about/about}
+\chapter{Outline - to be deleted}
-\part{OpenSSL on the Command Line}
+\begin{outline}
+ \item{Part: Foundations}
+ \begin{outline}
+ \item{Chapter: Introduction}
+ \begin{outline}
+ \item{Purpose of this book}
+ \item{Layout and how to navigate this book}
+ \item{This is an open source book}
+ \item{About the authors}
+ \end{outline}
+ \item{Chapter: About OpenSSL}
+ \begin{outline}
+ \item{What is OpenSSL}
+ \begin{outline}
+ \item{Describe OpenSSL as a command line tool}
+ \item{Describe OpenSSL as a SSL/TLS/DTLS library}
+ \item{Describe OpenSSL as a crypto library}
+ \end{outline}
+ \item{OpenSSL History}
+ \begin{outline}
+ \item{SSLeay}
+ \item{OpenSSL formation}
+ \item{The lean years and FIPS}
+ \item{Changes in the team membership and processes}
+ \item{OpenSSL today}
+ \end{outline}
+ \end{outline}
+ \item{Chapter: Getting OpenSSL}
+ \begin{outline}
+ \item{OpenSSL Version Numbering}
+ \item{Using pre-built binaries}
+ \item{Pre-requisites for building OpenSSL from source}
+ \item{Compiling and installing from source}
+ \item{Troubleshooting some common build issues}
+ \end{outline}
+ \item{Chapter: Programming Fundamentals}
+ \begin{outline}
+ \item{Memory management}
+ \begin{outline}
+ \item{new and free functions}
+ \item{OPENSSL\_malloc, OPENSSL\_zalloc and OPENSSL\_free}
+ \item{get0, get1, set0, set1 etc}
+ \item{Debugging memory issues}
+ \end{outline}
+ \item{BIOs}
+ \item{Serialisation and De-serialisation}
+ \begin{outline}
+ \item{i2d and d2i functions}
+ \end{outline}
+ \item{Stacks}
+ \item{LHashes}
+ \item{NIDs}
+ \item{Identifying the OpenSSL version}
+ \item{Automatic Library Initialisation and De-initialisation}
+ \item{Threads}
+ \end{outline}
+ \item{Chapter: Certificates and Certificate Authorities}
+ \item{Chapter: Working with Certificate and Key files}
+ \begin{outline}
+ \item{PEM files}
+ \item{PKCS8 files}
+ \item{PCKS12 files}
+ \end{outline}
+ \item{Chapter: Certificate Revocation}
+ \begin{outline}
+ \item{CRLs}
+ \item{OCSP}
+ \end{outline}
+ \item{Chapter: Configuration via CONF}
+ \item{Chapter: Engines (Advanced Topic)}
+ \item{Chapter: Stores (Advanced Topic)}
+ \item{Chapter: Advanced Certificates (Advanced Topic)}
+ \item{Chapter: Certificate Transparency (Advanced Topic)}
+ \item{Chapter: Asynchronous operation (Advanced Topic)}
+ \item{Chapter: ASN.1 (Advanced Topic)}
+ \item{Chapter: UIs (Advanced Topic)}
+ \end{outline}
+ \item{Part: SSL/TLS/DTLS}
+ \begin{outline}
+ \item{Chapter: Understanding SSL/TLS}
+ \begin{outline}
+ \item{Security properties of an SSL/TLS connection}
+ \item{Overview of SSL/TLS versions}
+ \item{Overview of establishing identity}
+ \item{Overview of ciphersuites}
+ \item{Records}
+ \item{Overview of the Handshake}
+ \item{Sessions and resumption}
+ \end{outline}
+ \item{Chapter: Getting Started}
+ \begin{outline}
+ \item{Creating an SSL\_CTX}
+ \item{Creating a self-signed certificate}
+ \item{Starting the test server}
+ \item{A simple client}
+ \begin{outline}
+ \item{Connecting}
+ \item{Exchanging data}
+ \item{Shutting down}
+ \end{outline}
+ \item{Compilation}
+ \item{Running the client}
+ \item{Adding the trusted CAs}
+ \item{A simple server}
+ \begin{outline}
+ \item{Setting up the SSL\_CTX}
+ \item{Accepting incoming connections}
+ \end{outline}
+ \end{outline}
+ \item{Chapter: Ciphersuites}
+ \begin{outline}
+ \item{Parts of the Ciphersuite}
+ \item{Ciphersuite Naming}
+ \item{TLSv1.3 Ciphersuites}
+ \item{Configuring the available Ciphersuites}
+ \item{Ciphersuite selection (client vs server preference)}
+ \item{Key Exchange Mechanisms}
+ \begin{outline}
+ \item{RSA}
+ \item{DHE}
+ \item{ECDHE (covering some basics of curve types: P-256, X25519 etc)}
+ \item{SRP}
+ \item{PSK}
+ \end{outline}
+ \item{Authentication}
+ \begin{outline}
+ \item{RSA}
+ \item{ECDSA}
+ \item{EdDSA? (future)}
+ \end{outline}
+ \item{Encryption}
+ \begin{outline}
+ \item{AES}
+ \item{Camellia}
+ \item{ChaCha}
+ \item{etc}
+ \end{outline}
+ \item{MAC/AEAD}
+ \end{outline}
+ \item{Chapter: Basic Operation}
+ \begin{outline}
+ \item{The read and write BIOs}
+ \item{Alerts}
+ \item{Version Negotiation}
+ \item{SSL\_read, SSL\_write and SSL\_get\_error}
+ \begin{outline}
+ \item{Non-blocking IO}
+ \item{Pending data}
+ \end{outline}
+ \item{Shutting down}
+ \item{Client Authentication}
+ \item{Renegotiation}
+ \item{Compression}
+ \item{SSL BIO}
+ \item{Exporting secrets}
+ \end{outline}
+ \item{Chapter: Sessions}
+ \begin{outline}
+ \item{Resumption handshakes}
+ \item{Simple sessions and session files}
+ \item{Session tickets}
+ \item{Session caches}
+ \end{outline}
+ \item{Chapter: Configuration}
+ \begin{outline}
+ \item{Setting options and modes}
+ \begin{outline}
+ \item{Some common options/modes}
+ \begin{outline}
+ \item{SSL\_MODE\_AUTO\_RETRY}
+ \item{SSL\_MODE\_RELEASE\_BUFFERS}
+ \end{outline}
+ \end{outline}
+ \item{Signature Algorithms}
+ \item{Supported Groups}
+ \item{Configuration using SSL\_CONF}
+ \item{Security levels and the security callbacks}
+ \end{outline}
+ \item{Chapter: DTLS}
+ \begin{outline}
+ \item{Key differences with TLS}
+ \item{Transports}
+ \begin{outline}
+ \item{UDP}
+ \item{SCTP}
+ \item{MTU issues}
+ \end{outline}
+ \item{Retransmissions and the DTLS timer}
+ \item{Listening for connections and cookies}
+ \end{outline}
+ \item{Chapter: TLSv1.3}
+ \item{Chapter: Debugging Connection Failures}
+ \item{Chapter: Advanced Extensions (Advanced Topic)}
+ \begin{outline}
+ \item{SNI}
+ \item{ALPN and NPN}
+ \item{SRTP}
+ \item{EC point formats}
+ \item{Extended Master Secret}
+ \item{Encrypt-Then-MAC}
+ \item{OCSP in SSL/TLS}
+ \item{Certificate Transparency in SSL/TLS}
+ \item{Custom extensions}
+ \end{outline}
+ \item{Chapter: DANE (Advanced Topic)}
+ \item{Chapter: Optimisation (Advanced Topic)}
+ \begin{outline}
+ \item{Multiblock}
+ \item{Async}
+ \item{Pipelining}
+ \item{Fragment sizes}
+ \item{Read ahead}
+ \end{outline}
+ \end{outline}
+ \item{Part: Cryptography}
+ \begin{outline}
+ \item{Chapter: Working with BIGNUMs}
+ \item{Chapter: Random Numbers}
+ \item{Chapter: Encryption and Decryption (Symmetric)}
+ \begin{outline}
+ \item{What is symmetric encryption}
+ \item{Block and stream ciphers}
+ \item{Modes}
+ \item{IVs and Nonces}
+ \item{A simple encryption/decryption example}
+ \item{AEAD}
+ \begin{outline}
+ \item{Tags}
+ \item{GCM}
+ \item{OCB}
+ \item{CCM}
+ \item{ChaCha20-Poly1305}
+ \end{outline}
+ \item{XTS}
+ \end{outline}
+ \item{Chapter: Asymmetric encryption and decryption}
+ \item{Chapter: Digital signatures}
+ \item{Chapter: Hashes}
+ \item{Chapter: Message Authentication Codes}
+ \item{Chapter: Key Generation and Derivation}
+ \item{Chapter: CMS (PKCS.7) and S/MIME (Advanced Topic)}
+ \item{Chapter: Elliptic Curves (Advanced Topic)}
+ \end{outline}
+\end{outline}
-\part{SSL/TLS/DTLS Application Programming}
+\include{foundations/about/about}
-\part{Cryptography Application Programming}
+\part{SSL/TLS/DTLS}
+
+\part{Cryptography}
\end{document}
More information about the openssl-commits
mailing list