rfc9500.original   rfc9500.txt 
Network Working Group P. Gutmann Internet Engineering Task Force (IETF) P. Gutmann
Internet-Draft University of Auckland Request for Comments: 9500 University of Auckland
Intended status: Informational C. Bonnell Category: Informational C. Bonnell
Expires: 12 February 2024 DigiCert ISSN: 2070-1721 DigiCert
11 August 2023 November 2023
Standard PKC Test Keys Standard Public Key Cryptography (PKC) Test Keys
draft-gutmann-testkeys-05
Abstract Abstract
This document provides a set of standard public-key cryptography This document provides a set of standard Public Key Cryptography
(PKC) test keys that may be used wherever pre-generated keys and (PKC) test keys that may be used wherever pre-generated keys and
associated operations like digitial signatures are required. Like associated operations like digital signatures are required. Like the
the EICAR virus test and GTUBE spam test files, these publicly-known European Institute for Computer Antivirus Research (EICAR) virus test
test keys can be detected and recognised by applications consuming and the Generic Test for Unsolicited Bulk Email (GTUBE) spam test
them as being purely for testing purposes without assigning any files, these publicly known test keys can be detected and recognised
security properties to them. by applications consuming them as being purely for testing purposes
without assigning any security properties to them.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for informational purposes.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Not all documents
approved by the IESG are candidates for any level of Internet
Standard; see Section 2 of RFC 7841.
This Internet-Draft will expire on 12 February 2024. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc9500.
Copyright Notice Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents
license-info) in effect on the date of publication of this document. (https://trustee.ietf.org/license-info) in effect on the date of
Please review these documents carefully, as they describe your rights publication of this document. Please review these documents
and restrictions with respect to this document. Code Components carefully, as they describe your rights and restrictions with respect
extracted from this document must include Revised BSD License text as to this document. Code Components extracted from this document must
described in Section 4.e of the Trust Legal Provisions and are include Revised BSD License text as described in Section 4.e of the
provided without warranty as described in the Revised BSD License. Trust Legal Provisions and are provided without warranty as described
in the Revised BSD License.
This document may contain material from IETF Documents or IETF This document may contain material from IETF Documents or IETF
Contributions published or made publicly available before November Contributions published or made publicly available before November
10, 2008. The person(s) controlling the copyright in some of this 10, 2008. The person(s) controlling the copyright in some of this
material may not have granted the IETF Trust the right to allow material may not have granted the IETF Trust the right to allow
modifications of such material outside the IETF Standards Process. modifications of such material outside the IETF Standards Process.
Without obtaining an adequate license from the person(s) controlling Without obtaining an adequate license from the person(s) controlling
the copyright in such materials, this document may not be modified the copyright in such materials, this document may not be modified
outside the IETF Standards Process, and derivative works of it may outside the IETF Standards Process, and derivative works of it may
not be created outside the IETF Standards Process, except to format not be created outside the IETF Standards Process, except to format
it for publication as an RFC or to translate it into languages other it for publication as an RFC or to translate it into languages other
than English. than English.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction
2. Publicly-known Test Keys . . . . . . . . . . . . . . . . . . 3 2. Publicly Known Test Keys
2.1. RSA Keys . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1. RSA Keys
2.2. DLP Keys . . . . . . . . . . . . . . . . . . . . . . . . 18 2.2. DLP Keys
2.3. ECDLP Keys . . . . . . . . . . . . . . . . . . . . . . . 28 2.3. ECDLP Keys
3. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 32 3. IANA Considerations
4. Security Considerations . . . . . . . . . . . . . . . . . . . 32 4. Security Considerations
Authors' Addresses
1. Introduction 1. Introduction
The widespread use of PKCs on the Internet has led to a proliferation The widespread use of public key cryptosystems on the Internet has
of publicly-known but not necessarily acknowledged keys used for led to a proliferation of publicly known but not necessarily
testing purposes or that ship preconfigured in applications. These acknowledged keys that are used for testing purposes or that ship
keys provide no security, but since there's no record of them relying preconfigured in applications. These keys provide no security, but
parties are often unaware that they provide no security. In order to since there's no record of them, relying parties are often unaware
address this issue, this document provides a set of standard public that they provide no security. In order to address this issue, this
test keys that may be used wherever a preconfigured or sample key is document provides a set of standard public test keys that may be used
required, and by extension in situations where such keys may be used wherever a preconfigured or sample key is required and, by extension,
such as when testing digitally signed data. Their purpose also in situations where such keys may be used, such as when testing
corresponds roughly to that of the European Institute for Computer digitally signed data. Their purpose corresponds roughly to that of
Antivirus Research (EICAR) test file, a non-virus used as a test file the European Institute for Computer Antivirus Research (EICAR) test
for antivirus products, and the Generic Test for Unsolicited Bulk file, a non-virus used as a test file for antivirus products, and the
Email (GTUBE) file, a similar file used with spam detection products. Generic Test for Unsolicited Bulk Email (GTUBE) file, a similar file
used with spam-detection products.
The keys provided cover three major algorithm families, RSA, DLP- The keys provided cover three major algorithm families:
based algorithms such as DSA, DH, and Elgamal, and ECDLP-based
algorithms such as ECDSA and ECDH. Although some of the algorithms * RSA
and key sizes are no longer recommended, keys corresponding to those
algorithms and key sizes are provided in order to accommodate the * algorithms based on the Discrete Logarithm Problem (DLP), such as
large installed based of existing implementations that use them. DSA, Diffie-Hellman (DH), and Elgamal
* algorithms based on the Elliptic Curve Discrete Logarithm Problem
(ECDLP), such as ECDSA and Elliptic Curve Diffie-Hellman (ECDH)
Although some of the algorithms and key sizes are no longer
recommended, keys corresponding to those algorithms and key sizes are
provided in order to accommodate the large installed base of existing
implementations that use them.
This document does not try to cover every possible algorithm family This document does not try to cover every possible algorithm family
and type, since there are far too many of these and new ones are and type since there are far too many of these and new ones are
constantly appearing and, in some cases, disappearing. If similar constantly appearing and, in some cases, disappearing. If similar
documents are created for further algorithm families they should documents are created for further algorithm families, they should
update this document and, for ease of implementation and use, try and update this document, and for ease of implementation and use, they
maintain compatibility with the format and naming conventions used should maintain compatibility with the format and naming conventions
here. used here.
2. Publicly-known Test Keys 2. Publicly Known Test Keys
This section provides the test keys for the algorithm groups in This section provides the test keys for the algorithm groups in
various sizes in a C-like notation that may be directly used in various sizes in a C-like notation that may be directly used in
crypto code written in C-like languages such as C, C++, Java, crypto code written in C-like languages such as C, C++, Java,
JavaScript, Go, Swift, and Rust, covering the majority of languages JavaScript, Go, Swift, and Rust, covering the majority of languages
likely to be used to implement crypto code. likely to be used to implement crypto code.
Alongside the source-code format, they are also provided in encoded Alongside the source code format, they are also provided in encoded
form, specifically the OpenSSL private-key format which many form, specifically the OpenSSL private key format, which many
applications can process directly. applications can process directly.
Each element of the key is given in a form consisting of a count in Each element of the key is given in a form consisting of a count in
bits (the value from which the nominal key size is taken) followed by bits (the value from which the nominal key size is taken) followed by
a byte string containing that key element in big-endian form. For a byte string containing that key element in big-endian form. For
example for the RSA p value it might be: example, the following is a sample key component for the RSA p value,
where 0xCF is the most significant byte of the RSA p value and 0x03
Sample key component is the least significant byte of the value:
/* p */ /* p */
512, 512,
{ 0xCF, 0xDA, 0xF9, 0x99, 0x6F, 0x05, 0x95, 0x84, { 0xCF, 0xDA, 0xF9, 0x99, 0x6F, 0x05, 0x95, 0x84,
0x09, 0x90, 0xB3, 0xAB, 0x39, 0xB7, 0xDD, 0x1D, 0x09, 0x90, 0xB3, 0xAB, 0x39, 0xB7, 0xDD, 0x1D,
[...] [...]
0xE1, 0x2C, 0x0D, 0xF7, 0x30, 0xE2, 0xB8, 0x09, 0xE1, 0x2C, 0x0D, 0xF7, 0x30, 0xE2, 0xB8, 0x09,
0x73, 0x50, 0x28, 0xF6, 0x55, 0x85, 0x57, 0x03 }, 0x73, 0x50, 0x28, 0xF6, 0x55, 0x85, 0x57, 0x03 },
where 0xCF is the most-significant byte of the RSA p value and 0x03
is the least-significant byte of the value.
In addition to the key data, each key is given a recommended name for In addition to the key data, each key is given a recommended name for
use in source code as a means of providing a standard reference for use in source code as a means of providing a standard reference for
each one. each one.
2.1. RSA Keys 2.1. RSA Keys
The following publicly-known test keys may be used for RSA. The following publicly known test keys may be used for RSA.
RSA-1024 key "testRSA1024" RSA-1024 key "testRSA1024":
/* n */ /* n */
1024, 1024,
{ 0xB0, 0xD1, 0x83, 0x52, 0xA8, 0x8F, 0x53, 0xD5, { 0xB0, 0xD1, 0x83, 0x52, 0xA8, 0x8F, 0x53, 0xD5,
0x51, 0x6F, 0x46, 0xC2, 0x0E, 0x7A, 0x36, 0x7D, 0x51, 0x6F, 0x46, 0xC2, 0x0E, 0x7A, 0x36, 0x7D,
0x7D, 0xE8, 0x8A, 0xCF, 0x54, 0xA0, 0x19, 0xF6, 0x7D, 0xE8, 0x8A, 0xCF, 0x54, 0xA0, 0x19, 0xF6,
0xDE, 0xF5, 0x7A, 0xB9, 0xB4, 0x4C, 0xED, 0xDB, 0xDE, 0xF5, 0x7A, 0xB9, 0xB4, 0x4C, 0xED, 0xDB,
0x22, 0x42, 0xB1, 0xBC, 0xA0, 0xFB, 0x1B, 0x5C, 0x22, 0x42, 0xB1, 0xBC, 0xA0, 0xFB, 0x1B, 0x5C,
0xB8, 0x2B, 0x30, 0x36, 0x17, 0x6A, 0x63, 0x90, 0xB8, 0x2B, 0x30, 0x36, 0x17, 0x6A, 0x63, 0x90,
0x35, 0x64, 0xDE, 0xC6, 0xEB, 0x41, 0xDB, 0x2F, 0x35, 0x64, 0xDE, 0xC6, 0xEB, 0x41, 0xDB, 0x2F,
skipping to change at page 6, line 5 skipping to change at line 242
511, 511,
{ 0x41, 0x99, 0x79, 0x16, 0x16, 0x72, 0x21, 0x3E, { 0x41, 0x99, 0x79, 0x16, 0x16, 0x72, 0x21, 0x3E,
0x0A, 0xB7, 0xB9, 0x77, 0x37, 0xD9, 0x92, 0x89, 0x0A, 0xB7, 0xB9, 0x77, 0x37, 0xD9, 0x92, 0x89,
0x9E, 0x5C, 0x4D, 0x31, 0x06, 0xB8, 0x5E, 0x71, 0x9E, 0x5C, 0x4D, 0x31, 0x06, 0xB8, 0x5E, 0x71,
0x5D, 0x1B, 0x3A, 0xAE, 0x84, 0x29, 0x62, 0xD2, 0x5D, 0x1B, 0x3A, 0xAE, 0x84, 0x29, 0x62, 0xD2,
0x54, 0x4F, 0xB2, 0xAF, 0xA9, 0x80, 0x97, 0x4E, 0x54, 0x4F, 0xB2, 0xAF, 0xA9, 0x80, 0x97, 0x4E,
0x53, 0x85, 0x12, 0xBD, 0x0C, 0x27, 0xCF, 0x48, 0x53, 0x85, 0x12, 0xBD, 0x0C, 0x27, 0xCF, 0x48,
0xEA, 0x72, 0x17, 0xAA, 0xE0, 0x37, 0x74, 0x22, 0xEA, 0x72, 0x17, 0xAA, 0xE0, 0x37, 0x74, 0x22,
0xC8, 0x20, 0x3D, 0x27, 0xFD, 0x45, 0x96, 0xE5 } 0xC8, 0x20, 0x3D, 0x27, 0xFD, 0x45, 0x96, 0xE5 }
RSA-1024 key in encoded form RSA-1024 key in encoded form:
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCw0YNSqI9T1VFvRsIOejZ9feiKz1SgGfbe9Xq5tEzt2yJCsbyg MIICXQIBAAKBgQCw0YNSqI9T1VFvRsIOejZ9feiKz1SgGfbe9Xq5tEzt2yJCsbyg
+xtcuCswNhdqY5A1ZN7G60HbL4/Hh/TlLhFJ4zNHVylz9mDDx3yp4IIcK2lb566d +xtcuCswNhdqY5A1ZN7G60HbL4/Hh/TlLhFJ4zNHVylz9mDDx3yp4IIcK2lb566d
fTD0B5EQ9Iqub4twLUdLKQCBfyhmJJvsEqKxm4J4QWgI+Brh/Pm3d4piPwIDAQAB fTD0B5EQ9Iqub4twLUdLKQCBfyhmJJvsEqKxm4J4QWgI+Brh/Pm3d4piPwIDAQAB
AoGASC6fj6TkLfMNdYHLQqG9kOlPfys4fstarpZD7X+fUBJ/H/7y5DzeZLGCYAIU AoGASC6fj6TkLfMNdYHLQqG9kOlPfys4fstarpZD7X+fUBJ/H/7y5DzeZLGCYAIU
+QeAHWv6TfZIQjReW7Qy00RFJdgwFlTFRCsKXhG5x+IB+jL0Grr08KbgPPDgy4Jm +QeAHWv6TfZIQjReW7Qy00RFJdgwFlTFRCsKXhG5x+IB+jL0Grr08KbgPPDgy4Jm
xirRHZVtU8lGbkiZX+omDIU28EHLNWL6rFEcTWao/tERspECQQDp2G5Nw0qYWn7H xirRHZVtU8lGbkiZX+omDIU28EHLNWL6rFEcTWao/tERspECQQDp2G5Nw0qYWn7H
Wm9Up1zkUTnkUkCzhqtxHbeRvNmHGKE7ryGMJEk2RmgHVstQpsvuFY4lIUSZEjAc Wm9Up1zkUTnkUkCzhqtxHbeRvNmHGKE7ryGMJEk2RmgHVstQpsvuFY4lIUSZEjAc
DUFJERhFAkEAwZH6O1ULORp8sHKDdidyleYcZU8L7y9Y3OXJYqELfddfBgFUZeVQ DUFJERhFAkEAwZH6O1ULORp8sHKDdidyleYcZU8L7y9Y3OXJYqELfddfBgFUZeVQ
duRmJj7ryu0g0uurOTE+i8VnMg/ostxiswJBAOc64Dd8uLJWKa6uug+XPr91oi0n duRmJj7ryu0g0uurOTE+i8VnMg/ostxiswJBAOc64Dd8uLJWKa6uug+XPr91oi0n
OFtM+xHrNK2jc+WmcSg3UJDnAI3uqMc5B+pERLq0Dc6hStehqHjUko3RnZECQEGZ OFtM+xHrNK2jc+WmcSg3UJDnAI3uqMc5B+pERLq0Dc6hStehqHjUko3RnZECQEGZ
eRYWciE+Cre5dzfZkomeXE0xBrhecV0bOq6EKWLSVE+yr6mAl05ThRK9DCfPSOpy eRYWciE+Cre5dzfZkomeXE0xBrhecV0bOq6EKWLSVE+yr6mAl05ThRK9DCfPSOpy
F6rgN3QiyCA9J/1FluUCQQC5nX+PTU1FXx+6Ri2ZCi6EjEKMHr7gHcABhMinZYOt F6rgN3QiyCA9J/1FluUCQQC5nX+PTU1FXx+6Ri2ZCi6EjEKMHr7gHcABhMinZYOt
N59pra9UdVQw9jxCU9G7eMyb0jJkNACAuEwakX3gi27b N59pra9UdVQw9jxCU9G7eMyb0jJkNACAuEwakX3gi27b
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
RSA-2048 key "testRSA2048" RSA-2048 key "testRSA2048":
/* n */ /* n */
2048, 2048,
{ 0xB0, 0xF9, 0xE8, 0x19, 0x43, 0xA7, 0xAE, 0x98, { 0xB0, 0xF9, 0xE8, 0x19, 0x43, 0xA7, 0xAE, 0x98,
0x92, 0xAA, 0xDE, 0x17, 0xCA, 0x7C, 0x40, 0xF8, 0x92, 0xAA, 0xDE, 0x17, 0xCA, 0x7C, 0x40, 0xF8,
0x74, 0x4F, 0xED, 0x2F, 0x81, 0x48, 0xE6, 0xC8, 0x74, 0x4F, 0xED, 0x2F, 0x81, 0x48, 0xE6, 0xC8,
0xEA, 0xA2, 0x7B, 0x7D, 0x00, 0x15, 0x48, 0xFB, 0xEA, 0xA2, 0x7B, 0x7D, 0x00, 0x15, 0x48, 0xFB,
0x51, 0x92, 0xAB, 0x28, 0xB5, 0x6C, 0x50, 0x60, 0x51, 0x92, 0xAB, 0x28, 0xB5, 0x6C, 0x50, 0x60,
0xB1, 0x18, 0xCC, 0xD1, 0x31, 0xE5, 0x94, 0x87, 0xB1, 0x18, 0xCC, 0xD1, 0x31, 0xE5, 0x94, 0x87,
0x4C, 0x6C, 0xA9, 0x89, 0xB5, 0x6C, 0x27, 0x29, 0x4C, 0x6C, 0xA9, 0x89, 0xB5, 0x6C, 0x27, 0x29,
skipping to change at page 9, line 44 skipping to change at line 424
0xA2, 0x34, 0xA5, 0x66, 0x8D, 0xED, 0x08, 0x01, 0xA2, 0x34, 0xA5, 0x66, 0x8D, 0xED, 0x08, 0x01,
0xB8, 0x59, 0xF3, 0x43, 0xF1, 0xCE, 0x93, 0x04, 0xB8, 0x59, 0xF3, 0x43, 0xF1, 0xCE, 0x93, 0x04,
0xE6, 0xFA, 0xA2, 0xB0, 0x02, 0xCA, 0xD9, 0xB7, 0xE6, 0xFA, 0xA2, 0xB0, 0x02, 0xCA, 0xD9, 0xB7,
0x8C, 0xDE, 0x5C, 0xDC, 0x2C, 0x1F, 0xB4, 0x17, 0x8C, 0xDE, 0x5C, 0xDC, 0x2C, 0x1F, 0xB4, 0x17,
0x1C, 0x42, 0x42, 0x16, 0x70, 0xA6, 0xAB, 0x0F, 0x1C, 0x42, 0x42, 0x16, 0x70, 0xA6, 0xAB, 0x0F,
0x50, 0xCC, 0x4A, 0x19, 0x4E, 0xB3, 0x6D, 0x1C, 0x50, 0xCC, 0x4A, 0x19, 0x4E, 0xB3, 0x6D, 0x1C,
0x91, 0xE9, 0x35, 0xBA, 0x01, 0xB9, 0x59, 0xD8, 0x91, 0xE9, 0x35, 0xBA, 0x01, 0xB9, 0x59, 0xD8,
0x72, 0x8B, 0x9E, 0x64, 0x42, 0x6B, 0x3F, 0xC3, 0x72, 0x8B, 0x9E, 0x64, 0x42, 0x6B, 0x3F, 0xC3,
0xA7, 0x50, 0x6D, 0xEB, 0x52, 0x39, 0xA8, 0xA7 } 0xA7, 0x50, 0x6D, 0xEB, 0x52, 0x39, 0xA8, 0xA7 }
RSA-2048 key in encoded form RSA-2048 key in encoded form:
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAsPnoGUOnrpiSqt4XynxA+HRP7S+BSObI6qJ7fQAVSPtRkqso MIIEowIBAAKCAQEAsPnoGUOnrpiSqt4XynxA+HRP7S+BSObI6qJ7fQAVSPtRkqso
tWxQYLEYzNEx5ZSHTGypibVsJylvCfuToDTfMul8b/CZjP2Ob0LdpYrNH6l5hvFE tWxQYLEYzNEx5ZSHTGypibVsJylvCfuToDTfMul8b/CZjP2Ob0LdpYrNH6l5hvFE
89FU1nZQF15oVLOpUgA7wGiHuEVawrGfey92UE68mOyUVXGweJIVDdxqdMoPvNNU 89FU1nZQF15oVLOpUgA7wGiHuEVawrGfey92UE68mOyUVXGweJIVDdxqdMoPvNNU
l86BU02vlBiESxOuox+dWmuVV7vfYZ79Toh/LUK43YvJh+rhv4nKuF7iHjVjBd9s l86BU02vlBiESxOuox+dWmuVV7vfYZ79Toh/LUK43YvJh+rhv4nKuF7iHjVjBd9s
B6iDjj70HFldzOQ9r8SRI+9NirupPTkF5AKNe6kUhKJ1luB7S27ZkvB3tSTT3P59 B6iDjj70HFldzOQ9r8SRI+9NirupPTkF5AKNe6kUhKJ1luB7S27ZkvB3tSTT3P59
3VVJvnzOjaA1z6Cz+4+eRvcysqhrRgFlwI9TEwIDAQABAoIBAEEYiyDP29vCzx/+ 3VVJvnzOjaA1z6Cz+4+eRvcysqhrRgFlwI9TEwIDAQABAoIBAEEYiyDP29vCzx/+
dS3LqnI5BjUuJhXUnc6AWX/PCgVAO+8A+gZRgvct7PtZb0sM6P9ZcLrweomlGezI dS3LqnI5BjUuJhXUnc6AWX/PCgVAO+8A+gZRgvct7PtZb0sM6P9ZcLrweomlGezI
FrL0/6xQaa8bBr/ve/a8155OgcjFo6fZEw3Dz7ra5fbSiPmu4/b/kvrg+Br1l77J FrL0/6xQaa8bBr/ve/a8155OgcjFo6fZEw3Dz7ra5fbSiPmu4/b/kvrg+Br1l77J
aun6uUAs1f5B9wW+vbR7tzbT/mxaUeDiBzKpe15GwcvbJtdIVMa2YErtRjc1/5B2 aun6uUAs1f5B9wW+vbR7tzbT/mxaUeDiBzKpe15GwcvbJtdIVMa2YErtRjc1/5B2
skipping to change at page 10, line 32 skipping to change at line 454
k9y8a+kdoYk3BASpCHJ29M5R2KEA7YV9wrBklHTz8VzSTFTbKHEQ5W5csAhoL5Fo k9y8a+kdoYk3BASpCHJ29M5R2KEA7YV9wrBklHTz8VzSTFTbKHEQ5W5csAhoL5Fo
qoHzFFi3Qx7MHESQb9qHyolHEMNx6QdsHUn7rlEnaTTyrXh3ifQtD6C0yTmFXUIS qoHzFFi3Qx7MHESQb9qHyolHEMNx6QdsHUn7rlEnaTTyrXh3ifQtD6C0yTmFXUIS
CW9wKApOrnyKJ9nI0HcuZQKBgQCMtoV6e9VGX4AEfpuHvAAnMYQFgeBiYTkBKltQ CW9wKApOrnyKJ9nI0HcuZQKBgQCMtoV6e9VGX4AEfpuHvAAnMYQFgeBiYTkBKltQ
XwozhH63uMMomUmtSG87Sz1TmrXadjAhy8gsG6I0pWaN7QgBuFnzQ/HOkwTm+qKw XwozhH63uMMomUmtSG87Sz1TmrXadjAhy8gsG6I0pWaN7QgBuFnzQ/HOkwTm+qKw
AsrZt4zeXNwsH7QXHEJCFnCmqw9QzEoZTrNtHJHpNboBuVnYcoueZEJrP8OnUG3r AsrZt4zeXNwsH7QXHEJCFnCmqw9QzEoZTrNtHJHpNboBuVnYcoueZEJrP8OnUG3r
UjmopwKBgAqB2KYYMUqAOvYcBnEfLDmyZv9BTVNHbR2lKkMYqv5LlvDaBxVfilE0 UjmopwKBgAqB2KYYMUqAOvYcBnEfLDmyZv9BTVNHbR2lKkMYqv5LlvDaBxVfilE0
2riO4p6BaAdvzXjKeRrGNEKoHNBpOSfYCOM16NjL8hIZB1CaV3WbT5oY+jp7Mzd5 2riO4p6BaAdvzXjKeRrGNEKoHNBpOSfYCOM16NjL8hIZB1CaV3WbT5oY+jp7Mzd5
7d56RZOE+ERK2uz/7JX9VSsM/LbH9pJibd4e8mikDS9ntciqOH/3 7d56RZOE+ERK2uz/7JX9VSsM/LbH9pJibd4e8mikDS9ntciqOH/3
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
RSA-4096 key "testRSA4096" RSA-4096 key "testRSA4096":
/* n */ /* n */
4096, 4096,
{ 0xB3, 0x8B, 0x49, 0x60, 0xE6, 0x3B, 0xE6, 0xA8, { 0xB3, 0x8B, 0x49, 0x60, 0xE6, 0x3B, 0xE6, 0xA8,
0xDB, 0xA8, 0x9A, 0x82, 0x97, 0x8E, 0xF1, 0xF6, 0xDB, 0xA8, 0x9A, 0x82, 0x97, 0x8E, 0xF1, 0xF6,
0x32, 0x44, 0xE5, 0x57, 0x7D, 0x8C, 0xF5, 0x86, 0x32, 0x44, 0xE5, 0x57, 0x7D, 0x8C, 0xF5, 0x86,
0x16, 0xD5, 0xCA, 0x57, 0x59, 0xD4, 0x9C, 0xC8, 0x16, 0xD5, 0xCA, 0x57, 0x59, 0xD4, 0x9C, 0xC8,
0xD9, 0x36, 0xC3, 0x38, 0xAA, 0x3C, 0xB9, 0xB1, 0xD9, 0x36, 0xC3, 0x38, 0xAA, 0x3C, 0xB9, 0xB1,
0x11, 0xC1, 0x49, 0x7E, 0x5B, 0x51, 0xAF, 0x69, 0x11, 0xC1, 0x49, 0x7E, 0x5B, 0x51, 0xAF, 0x69,
0x2F, 0x26, 0x11, 0xE6, 0x89, 0xF7, 0x67, 0x54, 0x2F, 0x26, 0x11, 0xE6, 0x89, 0xF7, 0x67, 0x54,
skipping to change at page 17, line 5 skipping to change at line 762
0x08, 0x2E, 0x7C, 0x1B, 0x41, 0xB3, 0xEE, 0x38, 0x08, 0x2E, 0x7C, 0x1B, 0x41, 0xB3, 0xEE, 0x38,
0x94, 0xE4, 0x2A, 0x8C, 0x17, 0x89, 0x71, 0xA4, 0x94, 0xE4, 0x2A, 0x8C, 0x17, 0x89, 0x71, 0xA4,
0x0F, 0x94, 0xAE, 0x9F, 0xB0, 0xF7, 0x03, 0xC9, 0x0F, 0x94, 0xAE, 0x9F, 0xB0, 0xF7, 0x03, 0xC9,
0xD4, 0xD0, 0x45, 0xCB, 0xEB, 0x2B, 0x82, 0x63, 0xD4, 0xD0, 0x45, 0xCB, 0xEB, 0x2B, 0x82, 0x63,
0x06, 0x2F, 0xDF, 0xD2, 0x6B, 0xD5, 0xB8, 0x69, 0x06, 0x2F, 0xDF, 0xD2, 0x6B, 0xD5, 0xB8, 0x69,
0x60, 0x62, 0x34, 0xE8, 0x9F, 0x2D, 0x96, 0xA5, 0x60, 0x62, 0x34, 0xE8, 0x9F, 0x2D, 0x96, 0xA5,
0xAB, 0x04, 0x7A, 0xFF, 0x79, 0x09, 0xDA, 0xCB, 0xAB, 0x04, 0x7A, 0xFF, 0x79, 0x09, 0xDA, 0xCB,
0x64, 0xD4, 0xFD, 0x3B, 0x35, 0x11, 0xD7, 0xF1, 0x64, 0xD4, 0xFD, 0x3B, 0x35, 0x11, 0xD7, 0xF1,
0xB9, 0x41, 0xA6, 0x64, 0xDF, 0x40, 0x6D, 0xB9 } 0xB9, 0x41, 0xA6, 0x64, 0xDF, 0x40, 0x6D, 0xB9 }
RSA-4096 key in encoded form RSA-4096 key in encoded form:
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
MIIJKAIBAAKCAgEAs4tJYOY75qjbqJqCl47x9jJE5Vd9jPWGFtXKV1nUnMjZNsM4 MIIJKAIBAAKCAgEAs4tJYOY75qjbqJqCl47x9jJE5Vd9jPWGFtXKV1nUnMjZNsM4
qjy5sRHBSX5bUa9pLyYR5on3Z1SAwLD0w2VPQ6+F/oyK1zTgQqitoF/XZQjgC6D3 qjy5sRHBSX5bUa9pLyYR5on3Z1SAwLD0w2VPQ6+F/oyK1zTgQqitoF/XZQjgC6D3
VsNEO76DPqfRANT7Nn7r1gvbZIZ3/H3rlCRNrRr47tHGWBLAPnxz9/NY6UG8ZkWP VsNEO76DPqfRANT7Nn7r1gvbZIZ3/H3rlCRNrRr47tHGWBLAPnxz9/NY6UG8ZkWP
97uXpJqYoRgH4CwaO5rTOlc64YDh/0Mq5VgMycq/q2AvMlvNoJfoe8em1040qH1g 97uXpJqYoRgH4CwaO5rTOlc64YDh/0Mq5VgMycq/q2AvMlvNoJfoe8em1040qH1g
ikP+suT/8fS452hqmEddtRpuvQgXKldBd0kkiyFVyLkG4NVA6Mso9MAK3J/kdYoa ikP+suT/8fS452hqmEddtRpuvQgXKldBd0kkiyFVyLkG4NVA6Mso9MAK3J/kdYoa
w2SrOeThVSiYVEQVP+7GrUxTSLLjj/VQ9fpYM5eTNzDICIG/Ee7o/jhtW1EoSamD w2SrOeThVSiYVEQVP+7GrUxTSLLjj/VQ9fpYM5eTNzDICIG/Ee7o/jhtW1EoSamD
mUOr89lyIHaXuOwkEaJhnVXKBCM8WiztxvKG2CnQ6Dcge3ZSmqJEhyEmjcAVC7ew mUOr89lyIHaXuOwkEaJhnVXKBCM8WiztxvKG2CnQ6Dcge3ZSmqJEhyEmjcAVC7ew
fnMxOnE+WJW6rzrf+mA5WMVn+FzyWx2AondWow0aUKHkaY7amhIrsKp6YPfNImyx fnMxOnE+WJW6rzrf+mA5WMVn+FzyWx2AondWow0aUKHkaY7amhIrsKp6YPfNImyx
skipping to change at page 18, line 12 skipping to change at line 818
BHr/eQnay2TU/Ts1EdfxuUGmZN9AbbkCggEBANEMkY2p8m2pTf87CSQ8jMPUOQJt BHr/eQnay2TU/Ts1EdfxuUGmZN9AbbkCggEBANEMkY2p8m2pTf87CSQ8jMPUOQJt
5iuenzesYLvXqVLLB4SUvXN+zDplDJPELtf2SQIHrplrPNH/H01jnWHd0ecSjVY8 5iuenzesYLvXqVLLB4SUvXN+zDplDJPELtf2SQIHrplrPNH/H01jnWHd0ecSjVY8
HBbIs52U1d5ek3/mWji4GeRp+Iw84CUh4q2p40bmob1RJ8e9sh2ixhHjX2yJ591m HBbIs52U1d5ek3/mWji4GeRp+Iw84CUh4q2p40bmob1RJ8e9sh2ixhHjX2yJ591m
oGbLIz75a60a05mUDK0FWt9cWHn4MKgIPKbWwFhYwmYDCjO/tK2DtcySny9soh5Q oGbLIz75a60a05mUDK0FWt9cWHn4MKgIPKbWwFhYwmYDCjO/tK2DtcySny9soh5Q
KVQriuvna2lE4YY+OUc7btmtkmp9v+LHKOI8dPabsOBU8Z8UbOGeHSNrZTQwpx3E KVQriuvna2lE4YY+OUc7btmtkmp9v+LHKOI8dPabsOBU8Z8UbOGeHSNrZTQwpx3E
p0riDg0UEzFmoYrfbvf+2VzEZDX/TJYjK9VkA8w5+xat8iS0/euKuvSRMb8= p0riDg0UEzFmoYrfbvf+2VzEZDX/TJYjK9VkA8w5+xat8iS0/euKuvSRMb8=
-----END RSA PRIVATE KEY----- -----END RSA PRIVATE KEY-----
2.2. DLP Keys 2.2. DLP Keys
The following publicly-known test keys may be used for DLP-based The following publicly known test keys may be used for DLP-based
algorithms such as DSA, DH, and Elgamal. algorithms such as DSA, DH, and Elgamal.
DLP-1024 key "testDLP1024" DLP-1024 key "testDLP1024":
/* p */ /* p */
1018, 1018,
{ 0x03, 0x0C, 0xDF, 0xC3, 0x8F, 0xC3, 0xE4, 0x21, { 0x03, 0x0C, 0xDF, 0xC3, 0x8F, 0xC3, 0xE4, 0x21,
0x27, 0x90, 0xB0, 0xA4, 0x1E, 0x45, 0xB4, 0xE4, 0x27, 0x90, 0xB0, 0xA4, 0x1E, 0x45, 0xB4, 0xE4,
0xE8, 0x80, 0xDE, 0x8A, 0xBF, 0xD3, 0xAE, 0xCA, 0xE8, 0x80, 0xDE, 0x8A, 0xBF, 0xD3, 0xAE, 0xCA,
0x0B, 0x23, 0x8F, 0xB6, 0xCD, 0x73, 0x0C, 0xC3, 0x0B, 0x23, 0x8F, 0xB6, 0xCD, 0x73, 0x0C, 0xC3,
0x18, 0x76, 0x93, 0x36, 0xD5, 0xB1, 0x80, 0xB2, 0x18, 0x76, 0x93, 0x36, 0xD5, 0xB1, 0x80, 0xB2,
0x80, 0x2A, 0x01, 0xBE, 0x4B, 0xC1, 0xAB, 0x84, 0x80, 0x2A, 0x01, 0xBE, 0x4B, 0xC1, 0xAB, 0x84,
0xFC, 0xE2, 0xFF, 0x48, 0x9B, 0x50, 0xC2, 0xD2, 0xFC, 0xE2, 0xFF, 0x48, 0x9B, 0x50, 0xC2, 0xD2,
skipping to change at page 19, line 35 skipping to change at line 888
0x31, 0x8A, 0x0A, 0x79, 0x1F, 0x1D, 0x0D, 0xD4, 0x31, 0x8A, 0x0A, 0x79, 0x1F, 0x1D, 0x0D, 0xD4,
0xF6, 0x8A, 0xFA, 0xE3, 0x35, 0xAA, 0x5D, 0xBE, 0xF6, 0x8A, 0xFA, 0xE3, 0x35, 0xAA, 0x5D, 0xBE,
0xA3, 0xF2, 0xF6, 0xD6, 0xDD, 0x73, 0x09, 0x26, 0xA3, 0xF2, 0xF6, 0xD6, 0xDD, 0x73, 0x09, 0x26,
0x24, 0x7F, 0xDC, 0x4D, 0x1B, 0x82, 0xDF, 0x8C, 0x24, 0x7F, 0xDC, 0x4D, 0x1B, 0x82, 0xDF, 0x8C,
0x2D, 0x87, 0xAE, 0x8D, 0x36, 0xAD, 0xB9, 0xDD, 0x2D, 0x87, 0xAE, 0x8D, 0x36, 0xAD, 0xB9, 0xDD,
0x25, 0x13, 0x57, 0x8E, 0x8B, 0x99, 0xAA, 0x6A, 0x25, 0x13, 0x57, 0x8E, 0x8B, 0x99, 0xAA, 0x6A,
0x0E, 0xDF, 0x67, 0x5F, 0xFC, 0x2F, 0xDE, 0xB6, 0x0E, 0xDF, 0x67, 0x5F, 0xFC, 0x2F, 0xDE, 0xB6,
0x4B, 0x26, 0xE5, 0xBE, 0xD8, 0x53, 0x2D, 0xFD, 0x4B, 0x26, 0xE5, 0xBE, 0xD8, 0x53, 0x2D, 0xFD,
0x98, 0x11, 0x0F, 0xCF, 0xC9, 0xED, 0xF9, 0x38 } 0x98, 0x11, 0x0F, 0xCF, 0xC9, 0xED, 0xF9, 0x38 }
DLP-1024 key in encoded form DLP-1024 key in encoded form:
-----BEGIN DSA PRIVATE KEY----- -----BEGIN DSA PRIVATE KEY-----
MIIBuQIBAAKBgAMM38OPw+QhJ5CwpB5FtOTogN6Kv9Ouygsjj7bNcwzDGHaTNtWx MIIBuQIBAAKBgAMM38OPw+QhJ5CwpB5FtOTogN6Kv9Ouygsjj7bNcwzDGHaTNtWx
gLKAKgG+S8GrhPzi/0ibUMLSnekewOZbYGT9DeU36rocbN0n3DAwSB6LuWCqi4rv gLKAKgG+S8GrhPzi/0ibUMLSnekewOZbYGT9DeU36rocbN0n3DAwSB6LuWCqi4rv
kzUw5rHMUWC7+q+FD/ZXgRIzfVMDTkFj3GUDvfiJJYEUH6uCVbbZcnuzAhUA7EG5 kzUw5rHMUWC7+q+FD/ZXgRIzfVMDTkFj3GUDvfiJJYEUH6uCVbbZcnuzAhUA7EG5
wGIdW9yvEdUZj3IIiC5lu98CgYABZIesz82VUFHgbhxb70UsEmPHXSs2UE+0J1c1 wGIdW9yvEdUZj3IIiC5lu98CgYABZIesz82VUFHgbhxb70UsEmPHXSs2UE+0J1c1
woMyC2Oskcb0AgkyUxyrBLHNcv3yneJOJxeXp90hl2dpMfkzHR9Z7uW6LH1UrhNc woMyC2Oskcb0AgkyUxyrBLHNcv3yneJOJxeXp90hl2dpMfkzHR9Z7uW6LH1UrhNc
f3lBN9jYDrYpKI4mijvr0h8WpAPx1drYPBxHgBejzSZvG6SbiQ3AiSEuciYdo2ev f3lBN9jYDrYpKI4mijvr0h8WpAPx1drYPBxHgBejzSZvG6SbiQ3AiSEuciYdo2ev
gDsCUAKBgAIguULCXETaUrDRdoLqxDbqfoHsn3bhBXUyqmfq3QStuP1hgboLJfKE gDsCUAKBgAIguULCXETaUrDRdoLqxDbqfoHsn3bhBXUyqmfq3QStuP1hgboLJfKE
2qqqBfPIQDTUF9N7bgpjMYoKeR8dDdT2ivrjNapdvqPy9tbdcwkmJH/cTRuC34wt 2qqqBfPIQDTUF9N7bgpjMYoKeR8dDdT2ivrjNapdvqPy9tbdcwkmJH/cTRuC34wt
h66NNq253SUTV46LmapqDt9nX/wv3rZLJuW+2FMt/ZgRD8/J7fk4AhQR7Zl4WoE6 h66NNq253SUTV46LmapqDt9nX/wv3rZLJuW+2FMt/ZgRD8/J7fk4AhQR7Zl4WoE6
Gw6W7NONf5vOnr/W+g== Gw6W7NONf5vOnr/W+g==
-----END DSA PRIVATE KEY----- -----END DSA PRIVATE KEY-----
DLP-2048 key "testDLP2048"
DLP-2048 key "testDLP2048":
/* p */ /* p */
2042, 2042,
{ 0x03, 0x2D, 0xD5, 0x53, 0x7D, 0x33, 0x7A, 0x91, { 0x03, 0x2D, 0xD5, 0x53, 0x7D, 0x33, 0x7A, 0x91,
0x34, 0x37, 0xD3, 0x5E, 0xA3, 0x43, 0x3D, 0xB0, 0x34, 0x37, 0xD3, 0x5E, 0xA3, 0x43, 0x3D, 0xB0,
0xE7, 0xB7, 0x21, 0x29, 0x8F, 0xBA, 0x87, 0x27, 0xE7, 0xB7, 0x21, 0x29, 0x8F, 0xBA, 0x87, 0x27,
0xF2, 0xF9, 0xBE, 0x85, 0x6D, 0x6A, 0x14, 0x6B, 0xF2, 0xF9, 0xBE, 0x85, 0x6D, 0x6A, 0x14, 0x6B,
0x92, 0x98, 0x8D, 0x50, 0x82, 0xF2, 0xC5, 0x72, 0x92, 0x98, 0x8D, 0x50, 0x82, 0xF2, 0xC5, 0x72,
0xB7, 0x70, 0x37, 0x63, 0xE8, 0x24, 0x54, 0xA7, 0xB7, 0x70, 0x37, 0x63, 0xE8, 0x24, 0x54, 0xA7,
0xA4, 0xA2, 0x25, 0x9B, 0x29, 0xAC, 0xE9, 0xB0, 0xA4, 0xA2, 0x25, 0x9B, 0x29, 0xAC, 0xE9, 0xB0,
skipping to change at page 22, line 25 skipping to change at line 1020
0x12, 0x12, 0x21, 0xA4, 0x60, 0xF9, 0x80, 0xC5, 0x12, 0x12, 0x21, 0xA4, 0x60, 0xF9, 0x80, 0xC5,
0x4F, 0x80, 0x1D, 0x7D, 0x6D, 0x21, 0x9D, 0xF2, 0x4F, 0x80, 0x1D, 0x7D, 0x6D, 0x21, 0x9D, 0xF2,
0xA1, 0xDB, 0xEA, 0x3C, 0x8A, 0x03, 0xA0, 0x9F, 0xA1, 0xDB, 0xEA, 0x3C, 0x8A, 0x03, 0xA0, 0x9F,
0x6B, 0xE9, 0x1B, 0xB6, 0x29, 0x6D, 0x79, 0x1A, 0x6B, 0xE9, 0x1B, 0xB6, 0x29, 0x6D, 0x79, 0x1A,
0x2A, 0x83, 0x80, 0xE8, 0x9D, 0x0C, 0xDD, 0x26, 0x2A, 0x83, 0x80, 0xE8, 0x9D, 0x0C, 0xDD, 0x26,
0xF7, 0x66, 0x3E, 0x06, 0x9A, 0x83, 0x31, 0x49, 0xF7, 0x66, 0x3E, 0x06, 0x9A, 0x83, 0x31, 0x49,
0xAD, 0x44, 0x2B, 0x2C, 0x13, 0x98, 0x87, 0x71, 0xAD, 0x44, 0x2B, 0x2C, 0x13, 0x98, 0x87, 0x71,
0xF6, 0x54, 0xB8, 0x1F, 0x50, 0xE0, 0xD7, 0x26, 0xF6, 0x54, 0xB8, 0x1F, 0x50, 0xE0, 0xD7, 0x26,
0x42, 0x47, 0xD6, 0x78, 0xEA, 0xEB, 0xB0, 0xF9 } 0x42, 0x47, 0xD6, 0x78, 0xEA, 0xEB, 0xB0, 0xF9 }
DLP-2048 key in encoded form DLP-2048 key in encoded form:
-----BEGIN DSA PRIVATE KEY----- -----BEGIN DSA PRIVATE KEY-----
MIIDTAIBAAKCAQADLdVTfTN6kTQ3016jQz2w57chKY+6hyfy+b6FbWoUa5KYjVCC MIIDTAIBAAKCAQADLdVTfTN6kTQ3016jQz2w57chKY+6hyfy+b6FbWoUa5KYjVCC
8sVyt3A3Y+gkVKekoiWbKazpsLybS02YXWqcjLYw5OCfSAefG+gHaXHekmhWcLlM 8sVyt3A3Y+gkVKekoiWbKazpsLybS02YXWqcjLYw5OCfSAefG+gHaXHekmhWcLlM
yWh93CM7MK8ilLAwprSX9kb5ThwX6DqQTCwbaEQQzgSP2c1kBaFKpowrj3+L0G6f yWh93CM7MK8ilLAwprSX9kb5ThwX6DqQTCwbaEQQzgSP2c1kBaFKpowrj3+L0G6f
ZMS7acy/vIBWrkFKiy411iBc3vsqJKN5uKEWF1CV/1f/YVUShobZm44fJERjEnHw ZMS7acy/vIBWrkFKiy411iBc3vsqJKN5uKEWF1CV/1f/YVUShobZm44fJERjEnHw
nDNPNyJFL+kmP8M0nm8zB6Z1T/2J1EMnOH39QBigKupu9MY2p2nnzrc3GRlySahB nDNPNyJFL+kmP8M0nm8zB6Z1T/2J1EMnOH39QBigKupu9MY2p2nnzrc3GRlySahB
owvgxL6OyxB/OALcRYP44BKU1StiE2e9DBlTAh0BlQmy7ag7CIJzGz/onC72nbjY owvgxL6OyxB/OALcRYP44BKU1StiE2e9DBlTAh0BlQmy7ag7CIJzGz/onC72nbjY
NhI0XRpmpYO5EQKCAQAArF0SDkbSutaHiEfM6HCmntytyGyFnEm6963kHtk2jsI7 NhI0XRpmpYO5EQKCAQAArF0SDkbSutaHiEfM6HCmntytyGyFnEm6963kHtk2jsI7
ZFT7YOrarMZkKm/dMiuZqxR1gbIb6+BilOOCC8VW+lQRsxw3OzmmfVGKVHcTQVxn ZFT7YOrarMZkKm/dMiuZqxR1gbIb6+BilOOCC8VW+lQRsxw3OzmmfVGKVHcTQVxn
skipping to change at page 23, line 4 skipping to change at line 1042
VYky6fLci5Mua4S0B/VxUJ0G95Qw6V1GstAmFCiEF5mYhqZxRe10agyowERBA/UD VYky6fLci5Mua4S0B/VxUJ0G95Qw6V1GstAmFCiEF5mYhqZxRe10agyowERBA/UD
5rvnRWHDrNGa5XqCZ6G8PEkwg7sWxZeorJmB+3BFhxf7ZJykYdRwtLNePphk+hpZ 5rvnRWHDrNGa5XqCZ6G8PEkwg7sWxZeorJmB+3BFhxf7ZJykYdRwtLNePphk+hpZ
m8Aeb+mTClH1ebCEAXQluNChAj+u3dxX0c5WJRzaAoIBAAIwN7LZyZ51P9J5v/ze m8Aeb+mTClH1ebCEAXQluNChAj+u3dxX0c5WJRzaAoIBAAIwN7LZyZ51P9J5v/ze
6ZKcm6HeqpcLA3KvczXlUCE3QpnzYQJ8jWXVevtNPM0rRyS1Pwnr4oy/SZ9rT4Yz 6ZKcm6HeqpcLA3KvczXlUCE3QpnzYQJ8jWXVevtNPM0rRyS1Pwnr4oy/SZ9rT4Yz
SRmLJLKrDUzstsT9fmctSyrKnTnjriD47Nf9dxB85Upm3e6XROSM+N1rqaUox1Hw SRmLJLKrDUzstsT9fmctSyrKnTnjriD47Nf9dxB85Upm3e6XROSM+N1rqaUox1Hw
CMZvGSogTsf5OHaRAXmxMR2XW0klxWmQKfvRFKXnkBkKTTiblI+PV2qORaVr4NT9 CMZvGSogTsf5OHaRAXmxMR2XW0klxWmQKfvRFKXnkBkKTTiblI+PV2qORaVr4NT9
bOpjHF9TfvkYWY4wUi+TZFBmGMBFhMpv0HUSEiGkYPmAxU+AHX1tIZ3yodvqPIoD bOpjHF9TfvkYWY4wUi+TZFBmGMBFhMpv0HUSEiGkYPmAxU+AHX1tIZ3yodvqPIoD
oJ9r6Ru2KW15GiqDgOidDN0m92Y+BpqDMUmtRCssE5iHcfZUuB9Q4NcmQkfWeOrr oJ9r6Ru2KW15GiqDgOidDN0m92Y+BpqDMUmtRCssE5iHcfZUuB9Q4NcmQkfWeOrr
sPkCHGQFvN6092gpAiPOXbUqijDCitx4AtloHty0NOU= sPkCHGQFvN6092gpAiPOXbUqijDCitx4AtloHty0NOU=
-----END DSA PRIVATE KEY----- -----END DSA PRIVATE KEY-----
DLP-4096 key "testDLP4096"
DLP-4096 key "testDLP4096":
/* p */ /* p */
4086, 4086,
{ 0x31, 0xD2, 0x55, 0x5F, 0xB2, 0xE8, 0x89, 0xF3, { 0x31, 0xD2, 0x55, 0x5F, 0xB2, 0xE8, 0x89, 0xF3,
0x20, 0x83, 0x78, 0x79, 0x5A, 0xF4, 0x88, 0x5B, 0x20, 0x83, 0x78, 0x79, 0x5A, 0xF4, 0x88, 0x5B,
0x62, 0xD0, 0x13, 0x58, 0xBD, 0xF1, 0x17, 0xC0, 0x62, 0xD0, 0x13, 0x58, 0xBD, 0xF1, 0x17, 0xC0,
0xB8, 0xAD, 0x4D, 0x22, 0xBE, 0x62, 0xCC, 0x93, 0xB8, 0xAD, 0x4D, 0x22, 0xBE, 0x62, 0xCC, 0x93,
0x34, 0x5B, 0x6E, 0xA8, 0xFC, 0x54, 0x0B, 0x56, 0x34, 0x5B, 0x6E, 0xA8, 0xFC, 0x54, 0x0B, 0x56,
0x8F, 0x50, 0x95, 0xBB, 0xA0, 0x90, 0x3E, 0xC5, 0x8F, 0x50, 0x95, 0xBB, 0xA0, 0x90, 0x3E, 0xC5,
0xEE, 0xD8, 0xC6, 0xAE, 0x52, 0x5D, 0x9A, 0xA7, 0xEE, 0xD8, 0xC6, 0xAE, 0x52, 0x5D, 0x9A, 0xA7,
skipping to change at page 27, line 27 skipping to change at line 1258
0x80, 0x93, 0x65, 0x74, 0x94, 0x01, 0x5E, 0x05, 0x80, 0x93, 0x65, 0x74, 0x94, 0x01, 0x5E, 0x05,
0x17, 0x78, 0x96, 0xF1, 0x29, 0xFD, 0xFF, 0xB5, 0x17, 0x78, 0x96, 0xF1, 0x29, 0xFD, 0xFF, 0xB5,
0xFF, 0x4A, 0xF5, 0x7C, 0x64, 0xD1, 0x51, 0xEC, 0xFF, 0x4A, 0xF5, 0x7C, 0x64, 0xD1, 0x51, 0xEC,
0xEC, 0x8E, 0x74, 0x7B, 0x72, 0x67, 0xFA, 0x2D, 0xEC, 0x8E, 0x74, 0x7B, 0x72, 0x67, 0xFA, 0x2D,
0x8C, 0xF5, 0x97, 0x5E, 0x84, 0xC2, 0xEF, 0xAC, 0x8C, 0xF5, 0x97, 0x5E, 0x84, 0xC2, 0xEF, 0xAC,
0x18, 0xDF, 0x16, 0xF2, 0xD8, 0x98, 0x0C, 0xE4, 0x18, 0xDF, 0x16, 0xF2, 0xD8, 0x98, 0x0C, 0xE4,
0x09, 0xC0, 0x3A, 0x1B, 0xC2, 0xB9, 0x5B, 0x34, 0x09, 0xC0, 0x3A, 0x1B, 0xC2, 0xB9, 0x5B, 0x34,
0x34, 0x18, 0x98, 0xC6, 0xA5, 0xC6, 0x28, 0x54, 0x34, 0x18, 0x98, 0xC6, 0xA5, 0xC6, 0x28, 0x54,
0xB8, 0x53, 0x33, 0xE1, 0x4A, 0xA8, 0xE9 } 0xB8, 0x53, 0x33, 0xE1, 0x4A, 0xA8, 0xE9 }
DLP-4096 key in encoded form DLP-4096 key in encoded form:
-----BEGIN DSA PRIVATE KEY----- -----BEGIN DSA PRIVATE KEY-----
MIIGXgIBAAKCAf8x0lVfsuiJ8yCDeHla9IhbYtATWL3xF8C4rU0ivmLMkzRbbqj8 MIIGXgIBAAKCAf8x0lVfsuiJ8yCDeHla9IhbYtATWL3xF8C4rU0ivmLMkzRbbqj8
VAtWj1CVu6CQPsXu2MauUl2ap+SZefCObE7b9WqTKQmga20eB1eVP5BbVVKZMV9C VAtWj1CVu6CQPsXu2MauUl2ap+SZefCObE7b9WqTKQmga20eB1eVP5BbVVKZMV9C
SPVLge9fBU2Ngk4SrquCSywvTF7eBGAw3DsWwoBZVoXKOMbnE9guTRv80z2H3iaV SPVLge9fBU2Ngk4SrquCSywvTF7eBGAw3DsWwoBZVoXKOMbnE9guTRv80z2H3iaV
S6AFvEIXdzmyDx5GE4B57eWRZM5nI+NR5LL81Q1uq7RdqI+kzVYkiupEqi5BuP8o S6AFvEIXdzmyDx5GE4B57eWRZM5nI+NR5LL81Q1uq7RdqI+kzVYkiupEqi5BuP8o
vTeIAIwu70vhkKCrXX2APJq+18e3dLUPqDgN1/4rPYSFo9iA71HVa0Efc+ZZ554L vTeIAIwu70vhkKCrXX2APJq+18e3dLUPqDgN1/4rPYSFo9iA71HVa0Efc+ZZ554L
/zIUU1c+xQ2d1NCuyjCdOeQ4hieVA++UmFHj1Nxxq/OniGO5dcEGJMtRc0zbWCo6 /zIUU1c+xQ2d1NCuyjCdOeQ4hieVA++UmFHj1Nxxq/OniGO5dcEGJMtRc0zbWCo6
SMbXCEeDboCLDiJIuPqKjFWjV+gwVNZIssyluKOxaJGtUjVukoca9ZmlbpDJNDOl SMbXCEeDboCLDiJIuPqKjFWjV+gwVNZIssyluKOxaJGtUjVukoca9ZmlbpDJNDOl
SlL9QuK+ZRXIzsNzlAcMJsrFyowmHS1QIYhruUxOmfp40lN8yvWhksnCr3egeDNF SlL9QuK+ZRXIzsNzlAcMJsrFyowmHS1QIYhruUxOmfp40lN8yvWhksnCr3egeDNF
HxItqeb9e4OSEp7kmlYHXxo3BQBMBr02f7/LmgdKAuFlJSct+dMzy5GbW2EUB/f3 HxItqeb9e4OSEp7kmlYHXxo3BQBMBr02f7/LmgdKAuFlJSct+dMzy5GbW2EUB/f3
skipping to change at page 28, line 44 skipping to change at line 1300
ZznPYkcsohGFGNr+kHxL6ojcrjkBBzq2zGClYMmk1jMeKfiK/rmZpkrk28e/AiKp ZznPYkcsohGFGNr+kHxL6ojcrjkBBzq2zGClYMmk1jMeKfiK/rmZpkrk28e/AiKp
1Bk6IOgbQDDzKOOpy3ySYgSYR0/LZNrhu9eeSpwEdkde8PmrXomuTVqun4dgIfoL 1Bk6IOgbQDDzKOOpy3ySYgSYR0/LZNrhu9eeSpwEdkde8PmrXomuTVqun4dgIfoL
soIXzyeNOunt3BxXvl4X3A2UjgL8Bf7fdAcF2NzcnUuc5oCTZXSUAV4FF3iW8Sn9 soIXzyeNOunt3BxXvl4X3A2UjgL8Bf7fdAcF2NzcnUuc5oCTZXSUAV4FF3iW8Sn9
/7X/SvV8ZNFR7OyOdHtyZ/otjPWXXoTC76wY3xby2JgM5AnAOhvCuVs0NBiYxqXG /7X/SvV8ZNFR7OyOdHtyZ/otjPWXXoTC76wY3xby2JgM5AnAOhvCuVs0NBiYxqXG
KFS4UzPhSqjpAicBp3cRuJ1FUycpAboJWn/8FJyMBbAv3QQNyZiXEVvOw+YU8lV/ KFS4UzPhSqjpAicBp3cRuJ1FUycpAboJWn/8FJyMBbAv3QQNyZiXEVvOw+YU8lV/
nAw= nAw=
-----END DSA PRIVATE KEY----- -----END DSA PRIVATE KEY-----
2.3. ECDLP Keys 2.3. ECDLP Keys
The following publicly-known test keys may be used for ECDLP-based The following publicly known test keys may be used for ECDLP-based
algorithms such as ECDSA and ECDH. algorithms such as ECDSA and ECDH.
P256 key "testECCP256" P256 key "testECCP256":
/* qx */ /* qx */
256, 256,
{ 0x42, 0x25, 0x48, 0xF8, 0x8F, 0xB7, 0x82, 0xFF, { 0x42, 0x25, 0x48, 0xF8, 0x8F, 0xB7, 0x82, 0xFF,
0xB5, 0xEC, 0xA3, 0x74, 0x44, 0x52, 0xC7, 0x2A, 0xB5, 0xEC, 0xA3, 0x74, 0x44, 0x52, 0xC7, 0x2A,
0x1E, 0x55, 0x8F, 0xBD, 0x6F, 0x73, 0xBE, 0x5E, 0x1E, 0x55, 0x8F, 0xBD, 0x6F, 0x73, 0xBE, 0x5E,
0x48, 0xE9, 0x32, 0x32, 0xCC, 0x45, 0xC5, 0xB1 }, 0x48, 0xE9, 0x32, 0x32, 0xCC, 0x45, 0xC5, 0xB1 },
/* qy */ /* qy */
256, 256,
{ 0x6C, 0x4C, 0xD1, 0x0C, 0x4C, 0xB8, 0xD5, 0xB8, { 0x6C, 0x4C, 0xD1, 0x0C, 0x4C, 0xB8, 0xD5, 0xB8,
0xA1, 0x71, 0x39, 0xE9, 0x48, 0x82, 0xC8, 0x99, 0xA1, 0x71, 0x39, 0xE9, 0x48, 0x82, 0xC8, 0x99,
0x25, 0x72, 0x99, 0x34, 0x25, 0xF4, 0x14, 0x19, 0x25, 0x72, 0x99, 0x34, 0x25, 0xF4, 0x14, 0x19,
0xAB, 0x7E, 0x90, 0xA4, 0x2A, 0x49, 0x42, 0x72 }, 0xAB, 0x7E, 0x90, 0xA4, 0x2A, 0x49, 0x42, 0x72 },
/* d */ /* d */
256, 256,
{ 0xE6, 0xCB, 0x5B, 0xDD, 0x80, 0xAA, 0x45, 0xAE, { 0xE6, 0xCB, 0x5B, 0xDD, 0x80, 0xAA, 0x45, 0xAE,
0x9C, 0x95, 0xE8, 0xC1, 0x54, 0x76, 0x67, 0x9F, 0x9C, 0x95, 0xE8, 0xC1, 0x54, 0x76, 0x67, 0x9F,
0xFE, 0xC9, 0x53, 0xC1, 0x68, 0x51, 0xE7, 0x11, 0xFE, 0xC9, 0x53, 0xC1, 0x68, 0x51, 0xE7, 0x11,
0xE7, 0x43, 0x93, 0x95, 0x89, 0xC6, 0x4F, 0xC1 } 0xE7, 0x43, 0x93, 0x95, 0x89, 0xC6, 0x4F, 0xC1 }
P256 key in encoded form P256 key in encoded form:
-----BEGIN EC PRIVATE KEY----- -----BEGIN EC PRIVATE KEY-----
MHcCAQEEIObLW92AqkWunJXowVR2Z5/+yVPBaFHnEedDk5WJxk/BoAoGCCqGSM49 MHcCAQEEIObLW92AqkWunJXowVR2Z5/+yVPBaFHnEedDk5WJxk/BoAoGCCqGSM49
AwEHoUQDQgAEQiVI+I+3gv+17KN0RFLHKh5Vj71vc75eSOkyMsxFxbFsTNEMTLjV AwEHoUQDQgAEQiVI+I+3gv+17KN0RFLHKh5Vj71vc75eSOkyMsxFxbFsTNEMTLjV
uKFxOelIgsiZJXKZNCX0FBmrfpCkKklCcg== uKFxOelIgsiZJXKZNCX0FBmrfpCkKklCcg==
-----END EC PRIVATE KEY----- -----END EC PRIVATE KEY-----
P384 key "testECCP384" P384 key "testECCP384":
/* qx */ /* qx */
384, 384,
{ 0x5B, 0x09, 0x01, 0xB8, 0x85, 0x23, 0x29, 0x6E, { 0x5B, 0x09, 0x01, 0xB8, 0x85, 0x23, 0x29, 0x6E,
0xB9, 0x19, 0xD5, 0x0F, 0xFA, 0x1A, 0x9C, 0xB3, 0xB9, 0x19, 0xD5, 0x0F, 0xFA, 0x1A, 0x9C, 0xB3,
0x74, 0xBC, 0x4D, 0x40, 0x95, 0x86, 0x28, 0x2B, 0x74, 0xBC, 0x4D, 0x40, 0x95, 0x86, 0x28, 0x2B,
0xFE, 0xCA, 0x11, 0xB1, 0xD9, 0x5A, 0xDB, 0xB5, 0xFE, 0xCA, 0x11, 0xB1, 0xD9, 0x5A, 0xDB, 0xB5,
0x47, 0x34, 0xAF, 0x57, 0x0B, 0xF8, 0x2B, 0x72, 0x47, 0x34, 0xAF, 0x57, 0x0B, 0xF8, 0x2B, 0x72,
0x28, 0xCF, 0x22, 0x6B, 0xCF, 0x4C, 0x25, 0xDD }, 0x28, 0xCF, 0x22, 0x6B, 0xCF, 0x4C, 0x25, 0xDD },
/* qy */ /* qy */
384, 384,
skipping to change at page 30, line 29 skipping to change at line 1359
0xF9, 0x91, 0x9E, 0x84, 0x24, 0xF3, 0x7E, 0xC8 }, 0xF9, 0x91, 0x9E, 0x84, 0x24, 0xF3, 0x7E, 0xC8 },
/* d */ /* d */
384, 384,
{ 0xE2, 0x56, 0x33, 0x28, 0xDF, 0xAB, 0xF6, 0x81, { 0xE2, 0x56, 0x33, 0x28, 0xDF, 0xAB, 0xF6, 0x81,
0x88, 0x60, 0x6B, 0x91, 0x32, 0x42, 0x81, 0xC1, 0x88, 0x60, 0x6B, 0x91, 0x32, 0x42, 0x81, 0xC1,
0xD5, 0x8A, 0x44, 0x56, 0x43, 0x1B, 0x09, 0xD5, 0xD5, 0x8A, 0x44, 0x56, 0x43, 0x1B, 0x09, 0xD5,
0x10, 0xB3, 0x5F, 0xEC, 0xC9, 0xF3, 0x07, 0xCA, 0x10, 0xB3, 0x5F, 0xEC, 0xC9, 0xF3, 0x07, 0xCA,
0x18, 0x22, 0x84, 0x6F, 0xA2, 0x67, 0x13, 0x71, 0x18, 0x22, 0x84, 0x6F, 0xA2, 0x67, 0x13, 0x71,
0xA9, 0xA8, 0x1B, 0xAC, 0x0E, 0x35, 0x74, 0x9D } 0xA9, 0xA8, 0x1B, 0xAC, 0x0E, 0x35, 0x74, 0x9D }
P384 key in encoded form P384 key in encoded form:
-----BEGIN EC PRIVATE KEY----- -----BEGIN EC PRIVATE KEY-----
MIGkAgEBBDDiVjMo36v2gYhga5EyQoHB1YpEVkMbCdUQs1/syfMHyhgihG+iZxNx MIGkAgEBBDDiVjMo36v2gYhga5EyQoHB1YpEVkMbCdUQs1/syfMHyhgihG+iZxNx
qagbrA41dJ2gBwYFK4EEACKhZANiAARbCQG4hSMpbrkZ1Q/6GpyzdLxNQJWGKCv+ qagbrA41dJ2gBwYFK4EEACKhZANiAARbCQG4hSMpbrkZ1Q/6GpyzdLxNQJWGKCv+
yhGx2VrbtUc0r1cL+CtyKM8ia89MJd28/jsaOtOUMO/3Y+HWjS4VHZFyC3eVtY2m yhGx2VrbtUc0r1cL+CtyKM8ia89MJd28/jsaOtOUMO/3Y+HWjS4VHZFyC3eVtY2m
s0Y5YTqPubWo2kjGdHEX+ZGehCTzfsg= s0Y5YTqPubWo2kjGdHEX+ZGehCTzfsg=
-----END EC PRIVATE KEY----- -----END EC PRIVATE KEY-----
P521 key "testECCP521" P521 key "testECCP521":
/* qx */ /* qx */
521, 521,
{ 0x01, 0xD0, 0xFD, 0x72, 0x57, 0xA8, 0x4C, 0x74, { 0x01, 0xD0, 0xFD, 0x72, 0x57, 0xA8, 0x4C, 0x74,
0x7F, 0x56, 0x25, 0x75, 0xC0, 0x73, 0x85, 0xDB, 0x7F, 0x56, 0x25, 0x75, 0xC0, 0x73, 0x85, 0xDB,
0xEB, 0xF2, 0xF5, 0x2B, 0xEA, 0x58, 0x08, 0x3D, 0xEB, 0xF2, 0xF5, 0x2B, 0xEA, 0x58, 0x08, 0x3D,
0xB8, 0x2F, 0xDD, 0x15, 0x31, 0xD8, 0xAA, 0xE3, 0xB8, 0x2F, 0xDD, 0x15, 0x31, 0xD8, 0xAA, 0xE3,
0xCC, 0x87, 0x5F, 0xF0, 0x2F, 0xF7, 0xFA, 0x2D, 0xCC, 0x87, 0x5F, 0xF0, 0x2F, 0xF7, 0xFA, 0x2D,
0xA2, 0x60, 0xD8, 0xEB, 0x62, 0xD6, 0xD2, 0xF5, 0xA2, 0x60, 0xD8, 0xEB, 0x62, 0xD6, 0xD2, 0xF5,
0xD6, 0x49, 0x27, 0x8E, 0x32, 0x17, 0x36, 0xA0, 0xD6, 0x49, 0x27, 0x8E, 0x32, 0x17, 0x36, 0xA0,
0x62, 0x8C, 0xBB, 0xB3, 0x03, 0x08, 0xB6, 0xE6, 0x62, 0x8C, 0xBB, 0xB3, 0x03, 0x08, 0xB6, 0xE6,
skipping to change at page 31, line 38 skipping to change at line 1404
{ 0x01, 0xD9, 0x24, 0xDC, 0xCA, 0x0A, 0x88, 0x7F, { 0x01, 0xD9, 0x24, 0xDC, 0xCA, 0x0A, 0x88, 0x7F,
0x8D, 0x99, 0x76, 0x7A, 0x37, 0xD8, 0x74, 0xE6, 0x8D, 0x99, 0x76, 0x7A, 0x37, 0xD8, 0x74, 0xE6,
0x37, 0xA1, 0x2C, 0xCB, 0x47, 0x7D, 0x6E, 0x08, 0x37, 0xA1, 0x2C, 0xCB, 0x47, 0x7D, 0x6E, 0x08,
0x66, 0x53, 0x56, 0x69, 0x4D, 0x68, 0xB7, 0x65, 0x66, 0x53, 0x56, 0x69, 0x4D, 0x68, 0xB7, 0x65,
0x5E, 0x50, 0x69, 0x63, 0x8F, 0xDE, 0x7B, 0x45, 0x5E, 0x50, 0x69, 0x63, 0x8F, 0xDE, 0x7B, 0x45,
0xC8, 0x54, 0x01, 0x3D, 0xC7, 0x7A, 0x35, 0xB1, 0xC8, 0x54, 0x01, 0x3D, 0xC7, 0x7A, 0x35, 0xB1,
0x86, 0x55, 0xB8, 0x4C, 0x96, 0x6A, 0x60, 0x22, 0x86, 0x55, 0xB8, 0x4C, 0x96, 0x6A, 0x60, 0x22,
0x0D, 0x40, 0xF9, 0x1E, 0xD9, 0xF5, 0x14, 0x58, 0x0D, 0x40, 0xF9, 0x1E, 0xD9, 0xF5, 0x14, 0x58,
0x02, 0xEA } 0x02, 0xEA }
P521 key in encoded form P521 key in encoded form:
-----BEGIN EC PRIVATE KEY----- -----BEGIN EC PRIVATE KEY-----
MIHcAgEBBEIB2STcygqIf42Zdno32HTmN6Esy0d9bghmU1ZpTWi3ZV5QaWOP3ntF MIHcAgEBBEIB2STcygqIf42Zdno32HTmN6Esy0d9bghmU1ZpTWi3ZV5QaWOP3ntF
yFQBPcd6NbGGVbhMlmpgIg1A+R7Z9RRYAuqgBwYFK4EEACOhgYkDgYYABAHQ/XJX yFQBPcd6NbGGVbhMlmpgIg1A+R7Z9RRYAuqgBwYFK4EEACOhgYkDgYYABAHQ/XJX
qEx0f1YldcBzhdvr8vUr6lgIPbgv3RUx2KrjzIdf8C/3+i2iYNjrYtbS9dZJJ44y qEx0f1YldcBzhdvr8vUr6lgIPbgv3RUx2KrjzIdf8C/3+i2iYNjrYtbS9dZJJ44y
FzagYoy7swMItuYY2wD2KtIExkYDWbyBiriWG/Dw/A7FquikKBc85W8A3psVfB5c FzagYoy7swMItuYY2wD2KtIExkYDWbyBiriWG/Dw/A7FquikKBc85W8A3psVfB5c
gsZPVi/K3vxKTCj200LPPvYW/ILTO3KFySHyvzb92A== gsZPVi/K3vxKTCj200LPPvYW/ILTO3KFySHyvzb92A==
-----END EC PRIVATE KEY----- -----END EC PRIVATE KEY-----
3. IANA Considerations 3. IANA Considerations
This document has no IANA actions. This document has no IANA actions.
4. Security Considerations 4. Security Considerations
The intent of publishing known keys in this form is that they may be The intent of publishing known keys in this form is that they may be
easily recognised as being test keys when encountered. It should go easily recognised as being test keys when encountered. It should go
without saying that these keys should never be used or relied upon in without saying that these keys should never be used or relied upon in
production environments. production environments.
The author awaits the inevitable CVEs. The authors await the inevitable Common Vulnerabilities and Exposures
(CVEs).
Authors' Addresses
Peter Gutmann
University of Auckland
Department of Computer Science
Auckland
New Zealand
Email: pgut001@cs.auckland.ac.nz
Corey Bonnell
DigiCert
Email: corey.bonnell@digicert.com
 End of changes. 39 change blocks. 
93 lines changed or deleted 107 lines changed or added

This html diff was produced by rfcdiff 1.48.