Summary
In this chapter, we have learned about the concept of digital signatures, how they use message digest, and how digital signatures differ from message authentication codes. We also learned about the cryptographical guarantees that digital signatures provide. Then, we reviewed the digital signature algorithms supported by OpenSSL, discussed their technical merits, and mentioned a little bit of their history. We finished the theoretical part with recommendations on which digital signature algorithm to choose in which situation.
In the practical part, we learned how to sign with ECDSA and verify signatures on the command line. Then, we learned how to sign and verify signatures programmatically using C code.
In the next chapter, we will learn about X.509 certificates and Public Key Infrastructure (PKI) based on X.509 certificates.