diff --git a/book/source/diag/Components_of_an_OpenPGP_Certificate.png b/book/source/diag/Components_of_an_OpenPGP_Certificate.png index 02e6af5..37265cf 100644 Binary files a/book/source/diag/Components_of_an_OpenPGP_Certificate.png and b/book/source/diag/Components_of_an_OpenPGP_Certificate.png differ diff --git a/book/source/diag/Components_of_an_OpenPGP_Certificate.svg b/book/source/diag/Components_of_an_OpenPGP_Certificate.svg index 3bc7d20..0b48365 100644 --- a/book/source/diag/Components_of_an_OpenPGP_Certificate.svg +++ b/book/source/diag/Components_of_an_OpenPGP_Certificate.svg @@ -86,18 +86,18 @@ inkscape:pagecheckerboard="0" inkscape:deskcolor="#d1d1d1" inkscape:lockguides="false" - inkscape:zoom="0.35355339" - inkscape:cx="885.29769" - inkscape:cy="637.81032" + inkscape:zoom="2" + inkscape:cx="2755.25" + inkscape:cy="-1707.25" inkscape:window-width="2560" inkscape:window-height="1371" inkscape:window-x="0" inkscape:window-y="314" inkscape:window-maximized="1" - inkscape:current-layer="layer11" + inkscape:current-layer="layer31" showgrid="false" inkscape:export-bgcolor="#ffffff00" - showguides="false">Dr. Alice Adams<adams@work.example> diff --git a/book/source/diag/OpenPGPCert_with_privatekeystore.png b/book/source/diag/OpenPGPCert_with_privatekeystore.png index 1cf9d2e..005f966 100644 Binary files a/book/source/diag/OpenPGPCert_with_privatekeystore.png and b/book/source/diag/OpenPGPCert_with_privatekeystore.png differ diff --git a/book/source/diag/OpenPGPCert_with_privatekeystore.svg b/book/source/diag/OpenPGPCert_with_privatekeystore.svg index 21198af..ce51d7b 100644 --- a/book/source/diag/OpenPGPCert_with_privatekeystore.svg +++ b/book/source/diag/OpenPGPCert_with_privatekeystore.svg @@ -1,266 +1,178 @@ OpenPGP CertificateTransferable secret keyComponent KeyComponent KeyD07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99signing- key creation timeComponent KeyencryptionC0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94- key creation timeDr. Alice Adams<adam@work.example>- key creation timeComponent Key (primary)AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3certificationsigning- key creation timeComponent KeyencryptionC0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94- key creation time- key creation timeComponent Key (primary)AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3certification + sodipodi:nodetypes="csc" />Dr. Alice Adams<adams@work.example>Private key store diff --git a/book/source/diag/OpenPGP_Certificate.png b/book/source/diag/OpenPGP_Certificate.png index 4b9f63d..8fec825 100644 Binary files a/book/source/diag/OpenPGP_Certificate.png and b/book/source/diag/OpenPGP_Certificate.png differ diff --git a/book/source/diag/OpenPGP_Certificate.svg b/book/source/diag/OpenPGP_Certificate.svg index 02dde5f..8c7d263 100644 --- a/book/source/diag/OpenPGP_Certificate.svg +++ b/book/source/diag/OpenPGP_Certificate.svg @@ -22,10 +22,10 @@ style="color-interpolation-filters:sRGB" inkscape:label="Drop Shadow" id="filter90-4-2" - x="-0.018763099" - y="-0.0084790269" - width="1.0405729" - height="1.0193133">C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94Dr. Alice Adams<adam@work.example>AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3 + sodipodi:nodetypes="csc" />Dr. Alice Adams<adams@work.example> diff --git a/book/source/diag/OpenPGP_Certificate_packet.png b/book/source/diag/OpenPGP_Certificate_packet.png new file mode 100644 index 0000000..d0a2de8 Binary files /dev/null and b/book/source/diag/OpenPGP_Certificate_packet.png differ diff --git a/book/source/diag/OpenPGP_Certificate_packet.svg b/book/source/diag/OpenPGP_Certificate_packet.svg new file mode 100644 index 0000000..54cde9f --- /dev/null +++ b/book/source/diag/OpenPGP_Certificate_packet.svg @@ -0,0 +1,288 @@ + +- signature type- additional metadataSignature metadataOpenPGP signature packetCryptographic signature diff --git a/book/source/diag/OpenPGP_Certificate_packet_2.png b/book/source/diag/OpenPGP_Certificate_packet_2.png new file mode 100644 index 0000000..0043f44 Binary files /dev/null and b/book/source/diag/OpenPGP_Certificate_packet_2.png differ diff --git a/book/source/diag/OpenPGP_Certificate_packet_2.svg b/book/source/diag/OpenPGP_Certificate_packet_2.svg new file mode 100644 index 0000000..46e481a --- /dev/null +++ b/book/source/diag/OpenPGP_Certificate_packet_2.svg @@ -0,0 +1,210 @@ + +OpenPGP signature packet - signature type- additional metadataSignature metadataSignature over:Input dataSignature diff --git a/book/source/diag/TSK.png b/book/source/diag/TSK.png index c092dbd..361e350 100644 Binary files a/book/source/diag/TSK.png and b/book/source/diag/TSK.png differ diff --git a/book/source/diag/TSK.svg b/book/source/diag/TSK.svg index 471a9d3..098ae57 100644 --- a/book/source/diag/TSK.svg +++ b/book/source/diag/TSK.svg @@ -1,44 +1,19 @@ OpenPGP CertificateOpenPGP CertificateComponent KeyComponent KeyD07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC99D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC99signingsigning- key creation timeComponent KeyencryptionC0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94- key creation time- key creation time- key creation timeComponent KeyComponent Key (primary)encryptionC0A5 8384 A438 E5A1 4F73 7124 26A4 D45D AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA947F33 00F9 FB0E C457 378C D29F 1026 98B3- key creation timeDr. Alice Adams<adam@work.example>- key creation timeComponent Key (primary)AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3certificationcertificationPrivate key store + style="display:inline;fill:none;fill-opacity:1;stroke:url(#linearGradient251-5-2);stroke-width:2.475;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker-end:url(#Triangle-3-1-1);paint-order:fill markers stroke" + d="m 1236.5543,1690.1364 v 110.5257 h 31.7452" + id="path251-8-0" + sodipodi:nodetypes="ccc" />Dr. Alice Adams<adams@work.example> diff --git a/book/source/diag/certificate_packet_list.png b/book/source/diag/certificate_packet_list.png index 4202fdb..283c86a 100644 Binary files a/book/source/diag/certificate_packet_list.png and b/book/source/diag/certificate_packet_list.png differ diff --git a/book/source/diag/certificate_packet_list.svg b/book/source/diag/certificate_packet_list.svg index 7c1fe73..090f5ab 100644 --- a/book/source/diag/certificate_packet_list.svg +++ b/book/source/diag/certificate_packet_list.svg @@ -3,39 +3,17 @@ viewBox="0 0 658.46546 993.13795" version="1.1" id="svg1" - sodipodi:docname="diag_library_draft.svg" - inkscape:version="1.3 (0e150ed6c4, 2023-07-21)" width="658.46545" height="993.13794" xml:space="preserve" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">Certificate packet listSubkey binding signatureSubkey binding signatureSubkey binding signatureUser ID packet Certifying self-signature for User IDDirect Key Signature + transform="matrix(0.13903626,0,0,-0.17712508,2649.4318,2488.5628)" /> diff --git a/book/source/diag/cryptographic_signature.png b/book/source/diag/cryptographic_signature.png new file mode 100644 index 0000000..d5ee4bf Binary files /dev/null and b/book/source/diag/cryptographic_signature.png differ diff --git a/book/source/diag/cryptographic_signature.svg b/book/source/diag/cryptographic_signature.svg new file mode 100644 index 0000000..0b1c7c7 --- /dev/null +++ b/book/source/diag/cryptographic_signature.svg @@ -0,0 +1,137 @@ + +Cryptographic signature diff --git a/book/source/diag/diag_library_draft.svg b/book/source/diag/diag_library_draft.svg index a4321a0..ad830b5 100644 --- a/book/source/diag/diag_library_draft.svg +++ b/book/source/diag/diag_library_draft.svg @@ -14,6 +14,117 @@ xmlns="http://www.w3.org/2000/svg" xmlns:svg="http://www.w3.org/2000/svg">AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Secret-Key packetSecret-Key packetCertificate packet listCertificate packet listUser ID packet Certifying self-signature for User IDCertifying self-signature for User IDPublic-Key packetPublic-Key packetSignature packet Signature packet Direct Key Signature Direct Key Signature by the primary key over primary key, by the primary key over primary key, subkey and signature metadata subkey and signature metadata Signature packet Signature packet Direct Key Signature Direct Key Signature by the primary key over primary key, by the primary key over primary key, subkey and signature metadata subkey and signature metadata Signature is created.Signature is created.A minimal OpenPGP certificateA minimal OpenPGP certificateSubkey binding signatureSubkey binding signatureC0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94Primary key creates a Primary key creates a subkey subkey binding signaturebinding signature to bind the to bind the subkey to the primary keysubkey to the primary keyAAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Subkey binding Subkey binding signaturesignature- signature creation time- signature creation time- key expiration time- key expiration time- key flags- key flags- issuer fingerprint- issuer fingerprintPrimary keyPrimary keySubkeySubkeySignature metadata:Signature metadata:Subkey binding signature for Subkey binding signature for signing subkeyssigning subkeysPrimary key creates a Primary key creates a subkey subkey binding signaturebinding signature to bind the to bind the subkey to the primary keysubkey to the primary keyAAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Subkey binding Subkey binding signaturesignature- signature creation time- signature creation time- key expiration time- key expiration time- key flags- key flags- issuer fingerprint- issuer fingerprintPrimary keyPrimary keySubkeySubkeySignature metadata:Signature metadata:- signature creation time- signature creation time- issuer fingerprint- issuer fingerprintPrimary keyPrimary keySigning SubkeySigning Subkey- Embedded signature: - Embedded signature: Primary key binding Primary key bindingSigning key creates a Signing key creates a primaryprimary binding signaturebinding signature to associate to associate the primary keythe primary key to the subkey to the subkeyD07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99User ID binding signatureUser ID binding signatureAAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Primary key creates a Primary key creates a User ID User ID binding signaturebinding signature to associate to associate the User ID with the primary keythe User ID with the primary keyUser ID binding User ID binding signaturesignature- signature creation time- signature creation time- key expiration time- key expiration time- primary User ID flag- primary User ID flag- algorithm preferences- algorithm preferences- key expiration time - key expiration time (primary key) (primary key)- key flags (primary key)- key flags (primary key)Primary keyPrimary keyUser IDUser IDSignature metadata:Signature metadata:Signature typeSignature over:Signature dataSignature metadataCryptographic signatureOpenPGP signature packet- signature type- signature over input data- additional metadata- cryptographic signatureMeanings of signature in OpenPGPCryptographic signatureCreating a signatureCreating a signatureAAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3A cryptographic signature is calculated A cryptographic signature is calculated over the hash digest, using the private over the hash digest, using the private key material of the signer.key material of the signer.SigningSigning mechanismmechanismhash digesthash digestA hash digest is calculated from the A hash digest is calculated from the input data packets and the signature input data packets and the signature metadata.metadata.Signature typeSignature typeInput data packetsInput data packetsSignature metadataSignature metadata- ...- ...This cryptographic signature is then This cryptographic signature is then stored in the signature packet.stored in the signature packet.Hash mechanismHash mechanismVerifying a signatureVerifying a signatureAAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B3The cryptographic signature is The cryptographic signature is verified against the hash digest, verified against the hash digest, using the public key of the signer.using the public key of the signer.SignatureSignature verificationverification mechanismmechanismhash digesthash digestA hash digest is calculated from the A hash digest is calculated from the input data packets and the signature input data packets and the signature metadata.metadata.Signature typeSignature typeInput data packetsInput data packetsSignature metadataSignature metadata- ...- ...Hash mechanismHash mechanism- signature type- additional metadataSignature metadataOpenPGP signature packetCryptographic signatureOpenPGP signature packet - signature type- additional metadataSignature metadataSignature over:Input dataSignatureD07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94<adam@work.example><adams@work.example>AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94Dr. Alice Adams<adam@work.example>AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Dr. Alice Adams<adams@work.example>Converting a passphrase Converting a passphrase into a symmetric keyinto a symmetric key(string-to-key) (string-to-key) S2K mechanismS2K mechanismcorrect horse battery staplecorrect horse battery stapleDr. Alice Adams<adams@work.example>Fingerprint of an OpenPGP Fingerprint of an OpenPGP component key component key C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3OpenPGP CertificateOpenPGP CertificateD07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 D07B 24EC 91A1 4DD2 40AC 2D53 E6C8 A9E0 5494 9A41 222E A738 576E D19C AEA3 DC995494 9A41 222E A738 576E D19C AEA3 DC99C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D C0A5 8384 A438 E5A1 4F73 7124 26A4 D45D BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94BAEE F4A3 9E6B 30B0 9D55 13F9 78AC CA94Dr. Alice Adams<adam@work.example>AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 AAA1 8CBB 2546 85C5 8358 3205 63FD 37B6 7F33 00F9 FB0E C457 378C D29F 1026 98B37F33 00F9 FB0E C457 378C D29F 1026 98B3Dr. Alice Adams<adams@work.example>Public part of an Public part of an asymmetric keypairasymmetric keypair +