From c6bad42c24b6262ebc07fd48a2d622be9162088a Mon Sep 17 00:00:00 2001 From: "Bernhard E. Reiter" Date: Wed, 22 Oct 2025 16:57:00 +0200 Subject: [PATCH] Improve LoadCertificate unit test (#692) * fix `LoadCertificate` unit test replaced certificate with invalid dns name, which is rejected by stdlib of Go version >=1.25.2. Change in Go introduced by https://github.com/golang/go/issues/75715 * code review: add script to generate certificates, remove `greenbone` org entry * code review: add license header * rework cert creation and fix one filename --------- Co-authored-by: Marius Goetze --- internal/certs/certs_test.go | 10 +- internal/certs/createTestCerts.sh | 60 +++++ internal/certs/data/cert.crt | 61 +++-- internal/certs/data/private.pem | 42 ++++ internal/certs/data/privated.pem | 42 ---- internal/certs/data/testclient.crt | 49 ++-- internal/certs/data/testclientkey.pem | 308 +++++++++++++------------- 7 files changed, 311 insertions(+), 261 deletions(-) create mode 100755 internal/certs/createTestCerts.sh create mode 100644 internal/certs/data/private.pem delete mode 100644 internal/certs/data/privated.pem diff --git a/internal/certs/certs_test.go b/internal/certs/certs_test.go index e2f1af5..5bd7025 100644 --- a/internal/certs/certs_test.go +++ b/internal/certs/certs_test.go @@ -20,13 +20,13 @@ func TestLoadCertificates(t *testing.T) { passphrase = "qwer" missingCert = "data/testclientcert_missing.crt" missingTestkey = "data/testclientkey_missing.pem" - privateKey = "data/privated.pem" + privateKey = "data/private.pem" privateCert = "data/cert.crt" ) // Try to load cert that is not protected, expect success. if cert, err := LoadCertificate(&testCert, &testKey, nil); cert == nil || err != nil { - t.Errorf("Failure: Couldn't load supposedly valid certificate.") + t.Errorf("Failure: Couldn't load supposedly valid certificate. Got error: %v", err) } // Try to load no cert, expect error. if cert, err := LoadCertificate(nil, &testKey, nil); cert != nil || err == nil { @@ -46,7 +46,7 @@ func TestLoadCertificates(t *testing.T) { } // Try to load encrypted cert, expecting success. if cert, err := LoadCertificate(&privateCert, &privateKey, &passphrase); cert == nil || err != nil { - t.Errorf("Failure: Couldn't load supposedly valid encrypted certificate.") + t.Errorf("Failure: Couldn't load supposedly valid encrypted certificate. Got error: %v", err) } // Try to load wrong encrypted cert, expecting error. if cert, err := LoadCertificate(&testKey, &privateKey, &passphrase); cert != nil || err == nil { @@ -56,8 +56,8 @@ func TestLoadCertificates(t *testing.T) { if cert, err := LoadCertificate(&missingCert, &privateKey, &passphrase); cert != nil || err == nil { t.Errorf("Failure: No Failure while loading nonexistens certificate.") } - // Try to load nonexistent encrypted cert, expecting error. + // Try to load nonexistent encrypted cert, expecting success. if cert, err := LoadCertificate(nil, nil, nil); cert != nil || err != nil { - t.Errorf("Failure: Expected nil return.") + t.Errorf("Failure: Expected nil return. Got error: %v", err) } } diff --git a/internal/certs/createTestCerts.sh b/internal/certs/createTestCerts.sh new file mode 100755 index 0000000..084677e --- /dev/null +++ b/internal/certs/createTestCerts.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# SPDX-License-Identifier: Apache-2.0 +# SPDX-FileCopyrightText: 2025 German Federal Office for Information Security (BSI) +# Software-Engineering: 2025 Intevation GmbH + +# cab be used to generated the certificates for the go tests +# as the resulting files are in the repository, this script does not +# need to be run each time, its purpose is to document how the keys and +# certs were created + +set -e + +certtool --generate-privkey --outfile testserver-key.pem + + +echo ' +organization = "CSAF" +unit = "CSAF Distribution" +country = "DE" +cn = "csaf.test" + +dns_name = "csaf.test" +dns_name = "localhost" +dns_name = "*.csaf.test" +ip_address = "127.0.0.1" +ip_address = "::1" + +tls_www_server +tls_www_client +ocsp_signing_key +encryption_key +signing_key +expiration_days = 36500 +' > gnutls-certtool.testserver.template + +certtool --generate-self-signed --load-privkey testserver-key.pem --outfile cert.crt --template gnutls-certtool.testserver.template --stdout | head -1 + +# for testing legacy code path, we use openssl's traditional mode to +# create a password protected variant after RFC 1423 that still can be read +# by https://pkg.go.dev/crypto/x509#DecryptPEMBlock. Citation: +# Legacy PEM encryption as specified in RFC 1423 is insecure by design. +# Since it does not authenticate the ciphertext, it is vulnerable +# to padding oracle attacks that can let an attacker recover the plaintext. +openssl rsa -in testserver-key.pem -out private.pem -aes256 -passout pass:qwer -traditional + +echo ' +organization = "CSAF Tools Development (internal)" +country = "DE" +cn = "Tester" + +tls_www_client +encryption_key +signing_key + +expiration_days = 36500 +' > gnutls-certtool.testclientkey.template + +certtool --generate-privkey --bits 3072 --outfile testclientkey.pem +certtool --generate-self-signed --load-privkey testclientkey.pem --template gnutls-certtool.testclientkey.template --outfile testclient.crt diff --git a/internal/certs/data/cert.crt b/internal/certs/data/cert.crt index f80d61c..f814e3e 100644 --- a/internal/certs/data/cert.crt +++ b/internal/certs/data/cert.crt @@ -1,37 +1,28 @@ -----BEGIN CERTIFICATE----- -MIIGajCCBNKgAwIBAgIUGNi4GgCUssOOe3k0VuHf3R0+d54wDQYJKoZIhvcNAQEL -BQAwgY0xFDASBgNVBAMTC0NvbW1vbiBuYW1lMRMwEQYDVQQLEwppbnRldmF0aW9u -MRMwEQYDVQQKEwppbnRldmF0aW9uMRMwEQYDVQQHEwppbnRldmF0aW9uMRUwEwYD -VQQIEwxMb3dlciBTYXhvbnkxCzAJBgNVBAYTAkdFMRIwEAYKCZImiZPyLGQBGRYC -REMwHhcNMjMwOTE5MDcwMDA1WhcNMjYwNjE0MDcwMDA3WjCB8DEQMA4GA1UEAxMH -cmVxdWVzdDETMBEGA1UECxMKaW50ZXZhdGlvbjETMBEGA1UEChMKaW50ZXZhdGlv -bjETMBEGA1UEBxMKb3NuYWJydWVjazEVMBMGA1UECBMMbG93ZXIgc2F4b255MQsw -CQYDVQQGEwJHRTESMBAGCgmSJomT8ixkARkWAkRDMREwDwYKCZImiZPyLGQBGRYB -LjERMA8GCgmSJomT8ixkARkWAS4xETAPBgoJkiaJk/IsZAEZFgEuMRMwEQYKCZIm -iZPyLGQBGRYDd3d3MRcwFQYKCZImiZPyLGQBARMHbm8gaWRlYTCCAaIwDQYJKoZI -hvcNAQEBBQADggGPADCCAYoCggGBAN0vZbLXtRzd61rR8Hos0BGnqCaJXIwGARwx -JojMyxASFT+KeC4QDRkgRrK6OY4k/i7TEHuUGk/Bm754++554wmmhDqv1Q4+VhhR -1K/JAz/HVZNTAR1rPKwG82lyEpPxlRNZg/QtF9DqQSoSkL/fJLs+rq4zlKozXzRE -auZ5Be8So1dXRZfMVUMDgtk+IX8+iCeZisiWfv62ttQ0EiuiXLagd6ruEuoCSVi2 -tVswsC/Hp8AI2Ro56mmHiWthuae1H8yDWUFLSe9AQW65qC/xVUgo/nMpK2BYVFKb -70TMjl/dZM0Qn1tdiNyqCkbIhXjklZvZYhO+15TPkgDXDsqRUjpTrLZXLGrD6XIx -CRLZGY6YrUfsFTjUC6JrUrAR8zY7SLsYN5sUmFUSMpJnI+T/SD4p/0CXrKrbMOjW -Qqz6FX/WHPxvswGKHk5zHYGHrzx7OKmfVa6gzUgZSfOHj2xOOR2Un9DwNavIrmSC -WYXKZqig5qDyfzBvlXWEio/5GrDwgQIDAQABo4IBWzCCAVcwgcIGA1UdEQSBujCB -t4IrYSBkbnNOYW1lIG9mIHRoZSBzdWJqZWN0IG9mIHRoZSBjZXJ0aWZpY2F0ZYI3 -YW4gYWRkaXRpb25hbCBkbnNOYW1lIG9mIHRoZSBzdWJqZWN0IG9mIHRoZSBjZXJ0 -aWZpY2F0ZYIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIBLoIP -c2Vjb25kIGFkZGl0aW9ugg50aGlyZCBhZGRpdGlvboIHZG5zTmFtZTAMBgNVHRMB -Af8EAjAAMDEGA1UdJQQqMCgGCCsGAQUFBwMJBggrBgEFBQcDAgYIKwYBBQUHAwEG -CCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHsAAwHQYDVR0OBBYEFKrFhODjTKCopb+W -Qa29PsHR4HXgMB8GA1UdIwQYMBaAFCyZxCa1ZUHVy8LjikE8zumAiEgfMA0GCSqG -SIb3DQEBCwUAA4IBgQBTrAgh6d+qiLumEfmkNCmhewxKxDZp+Ni2nz9XRzNO2cQE -U0n8MdbnQInW3xJXng2sAcl1fQz0RN1hkyjDwi69mbbPgcTYmxJFvyt+zRYBe/Sq -4CGGkxEdPW94tMpQ6SrCn2mAMnvcq9A1pYBVYyPeUsaRHC5OUBFOMCevNy8JwNyY -MJ0H5HQCyCysbzA1d521pogGUs/tmbE+ym9zpV8vG0b6De1PexjVeGkTNYz6NCR2 -VZTQ+OJ5iE5pHPEC1Qif44LrR9Kdn/wu3RjTYyHeBOJFjK+DKgleNF4QVTcZQIPE -snN4H+/VSgTZQ3kgWbtpd1m5oRBJovEc2Qe+l+iDFCk8OA4z/x+fkvOeD3NUAl7D -9Pt3cP3UtWUJp4NJn2dvUljmQhB02HSqdNBhqKSg4/cf7l8Zo1ejvBUosrlgw3C3 -apDaC4/xk7woFKVYW25teH2ze+Gpz/YsLDtmL7Bri8CGVsqsN9yqO8SstwKBa3Rt -xQ2em6XnnanApT4iFX4= +MIIE2DCCA0CgAwIBAgIUT/9u6/HtTciy3NB6UGXu+U+UzT8wDQYJKoZIhvcNAQEL +BQAwTDELMAkGA1UEBhMCREUxDTALBgNVBAoTBENTQUYxGjAYBgNVBAsTEUNTQUYg +RGlzdHJpYnV0aW9uMRIwEAYDVQQDEwljc2FmLnRlc3QwIBcNMjUxMDE3MTAyMjM1 +WhgPMjEyNTA5MjMxMDIyMzVaMEwxCzAJBgNVBAYTAkRFMQ0wCwYDVQQKEwRDU0FG +MRowGAYDVQQLExFDU0FGIERpc3RyaWJ1dGlvbjESMBAGA1UEAxMJY3NhZi50ZXN0 +MIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwqJ45WlBG5CqW3Meewsf +Es1tqQRsHS/L6Hlz/aTZQHte/Co18qklnza0ZvK0mbPsQ8HLKXfU6Am5yw3u6vZj +XNfhWDW4QtsSk9f/y/fBADw17qYinoVyLpqZU5Z6kFRY5npY0C9bCtsAZd4qimx5 +yu/MhM8LHI9K2oKPSkFgRCTRKAo9sZ97o4wZmTxJIasOr0SPpmfMLs2sHSEqcK4d +/RxZ+OtYtd3pmE/WjxtSozCkdAccvrH+TSAuF3+/6oBiov8yX0KPNEBiiwuDXMUD +QWkjfcrxQZAswMWRo55JJYBbIjrinW8vldLooFo5trNEE2nukgRPhvLhiJdKKAeg ++A8jM/Bx7JgjRCPppIEmWdvXg+CS6L0hGj49pg3OcIiNNoufoXPRkFqmRh72n1Oj +2RC13W8H3C3SDYz20mqJhkbci+05vO/LgKj9te8xEs/xa4xCtv7ycuB2Etzf1cWS +zfz5LGXwwLI0rjpx3OAsr5i8Fukxe5maYLS9AUCTetTnAgMBAAGjga8wgawwDAYD +VR0TAQH/BAIwADAnBgNVHSUEIDAeBggrBgEFBQcDAgYIKwYBBQUHAwEGCCsGAQUF +BwMJMEQGA1UdEQQ9MDuCCWNzYWYudGVzdIIJbG9jYWxob3N0ggsqLmNzYWYudGVz +dIcEfwAAAYcQAAAAAAAAAAAAAAAAAAAAATAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0O +BBYEFN2InaQvsu6hULCYeKc6pdE4VgVHMA0GCSqGSIb3DQEBCwUAA4IBgQBjPdXd +2xHzce3mi4RlANT4nOSdpELhl54xeJDgI9Evt70N8B4uTmOI5+F6JVICE25cnDs1 +c9SoHpWzh1ZuzfiBYa/cdQNUtaTfgHLi5GYtV1DzmKXVRUciBiNBWWxYMbTGvTOO +i3r6DEgOYuukeL4qj//EGOcTJEarHVSxPMuXTD/PoP/VpIdqRS9drEpFUC6lecZc +UJtUPAcyx0oD2vNmPmulDfYFMLLOPrIeNa0g7os4wgUl7+9wR1cPPRTXY0fW6Hoi +j+a8Qn80Q3PrOuEO/SZ4aHHpOk90bRqofyIhFjPwS0YN5w/Sn23uq1u2Dx+Zy+5K +6Cs9p5dJWu5/zU4ZdbQlpYIHXQVbido1TY92Z84skEsac2wVh7L2LMB3p3Gu9WYn +oKqFYCw5FICvRgyh1KG8QWhW59Em0Jxr8rTw6qyBQACdixKy6/1ok2ArMivTC8Gd +rEbefshgc6dnAZCAp1MjCU+tg9iYEymSSLdOtUKvHEIosUGO1p5ol0hReTQ= -----END CERTIFICATE----- diff --git a/internal/certs/data/private.pem b/internal/certs/data/private.pem new file mode 100644 index 0000000..483283c --- /dev/null +++ b/internal/certs/data/private.pem @@ -0,0 +1,42 @@ +-----BEGIN RSA PRIVATE KEY----- +Proc-Type: 4,ENCRYPTED +DEK-Info: AES-256-CBC,3ACC7169D177F0159193ACAF3B3997A3 + +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 +-----END RSA PRIVATE KEY----- diff --git a/internal/certs/data/privated.pem b/internal/certs/data/privated.pem deleted file mode 100644 index 354598a..0000000 --- a/internal/certs/data/privated.pem +++ /dev/null @@ -1,42 +0,0 @@ ------BEGIN RSA PRIVATE KEY----- -Proc-Type: 4,ENCRYPTED -DEK-Info: DES-CBC,054A583F6C90570F - -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 ------END RSA PRIVATE KEY----- diff --git a/internal/certs/data/testclient.crt b/internal/certs/data/testclient.crt index f46f386..6cfd9fa 100644 --- a/internal/certs/data/testclient.crt +++ b/internal/certs/data/testclient.crt @@ -1,27 +1,26 @@ -----BEGIN CERTIFICATE----- -MIIEkDCCAvigAwIBAgIBFDANBgkqhkiG9w0BAQsFADBKMQ8wDQYDVQQDEwZUZXN0 -ZXIxKjAoBgNVBAoTIUNTQUYgVG9vbHMgRGV2ZWxvcG1lbnQgKGludGVybmFsKTEL -MAkGA1UEBhMCREUwHhcNMjMwOTA0MDcyMjAzWhcNMjMxMDI0MDcyMjAzWjBVMRow -GAYDVQQDExFUTFMgVGVzdCBDbGllbnQgMTEqMCgGA1UEChMhQ1NBRiBUb29scyBE -ZXZlbG9wbWVudCAoaW50ZXJuYWwpMQswCQYDVQQGEwJERTCCAaIwDQYJKoZIhvcN -AQEBBQADggGPADCCAYoCggGBAN0vZbLXtRzd61rR8Hos0BGnqCaJXIwGARwxJojM -yxASFT+KeC4QDRkgRrK6OY4k/i7TEHuUGk/Bm754++554wmmhDqv1Q4+VhhR1K/J -Az/HVZNTAR1rPKwG82lyEpPxlRNZg/QtF9DqQSoSkL/fJLs+rq4zlKozXzREauZ5 -Be8So1dXRZfMVUMDgtk+IX8+iCeZisiWfv62ttQ0EiuiXLagd6ruEuoCSVi2tVsw -sC/Hp8AI2Ro56mmHiWthuae1H8yDWUFLSe9AQW65qC/xVUgo/nMpK2BYVFKb70TM -jl/dZM0Qn1tdiNyqCkbIhXjklZvZYhO+15TPkgDXDsqRUjpTrLZXLGrD6XIxCRLZ -GY6YrUfsFTjUC6JrUrAR8zY7SLsYN5sUmFUSMpJnI+T/SD4p/0CXrKrbMOjWQqz6 -FX/WHPxvswGKHk5zHYGHrzx7OKmfVa6gzUgZSfOHj2xOOR2Un9DwNavIrmSCWYXK -Zqig5qDyfzBvlXWEio/5GrDwgQIDAQABo3YwdDAMBgNVHRMBAf8EAjAAMBMGA1Ud -JQQMMAoGCCsGAQUFBwMCMA8GA1UdDwEB/wQFAwMHoAAwHQYDVR0OBBYEFKrFhODj -TKCopb+WQa29PsHR4HXgMB8GA1UdIwQYMBaAFI6GhktAq9L2uRChC9LcXeedKiUg -MA0GCSqGSIb3DQEBCwUAA4IBgQAbUDaIkmubooDde7BpZQx742BsPg4IN68bIg9A -3jI9codx9c8l9ROvZ/7FeRNXzhYrQUwzcKpwtQ1mB7kM85oXaTLxrtnkZAO2fFSb -8RA6QjOrnOvewWaO3moCZaPnN1wWtlnUev2tD7D2Tz/f20dE2wbDV0BGb8bU4eGI -UVgzYrMh0MHaC8LKoXUWP97jp/p+9CG4D2S1CmpzP2Nm1dS03oj4UHIUtamjivYY -vOeoKATXmj59lgYqqoAVbTH6f4mZlZGmzUhRxK6hck7xBdiXAwfta72m4WzE7HRh -nHAgO5aVWb6zltvVDJhYumB9Itv+LI7uU8fF9Uyc65SZ2BevxgikoDNxTx0oNr+4 -hExQhJfKuPFF2NI1N2tPYJT53Cek/ZJfjX3TyBneqehthtRqoAIIEaF/QlXqzJIi -G66YFC3xFlLmaQh52DJkF2+hzcPhFTVQv3yCirGLUSS9Nm7vTO2wnnW5arZazSV+ -enRZb3oiVYFVDh0Hymz9g5VraMw= +MIIEeDCCAuCgAwIBAgIUTqTcNqmr8Ou/MpL1AUnM/3gcoUkwDQYJKoZIhvcNAQEL +BQAwSjELMAkGA1UEBhMCREUxKjAoBgNVBAoTIUNTQUYgVG9vbHMgRGV2ZWxvcG1l +bnQgKGludGVybmFsKTEPMA0GA1UEAxMGVGVzdGVyMCAXDTI1MTAxNzEwMjIzNloY +DzIxMjUwOTIzMTAyMjM2WjBKMQswCQYDVQQGEwJERTEqMCgGA1UEChMhQ1NBRiBU +b29scyBEZXZlbG9wbWVudCAoaW50ZXJuYWwpMQ8wDQYDVQQDEwZUZXN0ZXIwggGi +MA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDBN4fIBbwuGJXjXoa6F7e4Zzin +Yd9EB4nt5TkNoMkRgQe0JIJ+t1/lS/xlI7ATxNjUdybnYwCrEfDvy8XGwN6te+Xh +dz6HKDWPijW+ritQW9kouxJJSpna95L8SqU4tjdfyL/2X9E/7j3VYw1//zcmhLJg +1Os0+JHPcPuj1vmwLa1v7eGTCNlt0K8DbrlhPlteJB3hWolNIoVDjRemZFmqwUeV +GZ/XJos7OTB07p08yCOFhLl9jXCgEDDkKmcnAil3YhjudlEGSjdzFLskVD4xrtQ5 +GsbdJHyHhcUdgh+vqX2bFSklwdwVil1qIUEHnxpcRMaluZQ4u1tCgNhKNQHrJzVQ +n1aRVAYdX1PxfoIb5wt0+25MiVw8y8EcrMH97Ss26eNAtLeHZNrY9alqx/Cs8gOi +I8wA2Nga138tZuCJRXsDOnom9RrtdPLajhSb7n33Iq8ZDhYVGEIm2pc5MJxaI53V +e2WhmemFPfYwUAtzdGgwrBoY9MechdtNLGZqHxECAwEAAaNUMFIwDAYDVR0TAQH/ +BAIwADATBgNVHSUEDDAKBggrBgEFBQcDAjAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0O +BBYEFBVaa/ovyPpbk/8nlmuISWB2/t8xMA0GCSqGSIb3DQEBCwUAA4IBgQC8EeDx +qipM7bAFxkAOmvhNAjodKXRCWKhatD8HryeINOPgWajzLlHj/PCnULulhaFO1viA ++iBBKbHb+7LImb/owlNVu8iYDh/xBXmLrOHyd12K8dyN471iTBrskQwSCnYd6e/p +4i0hhNj5JidOgA6swjt9j4X7/IgsvXexLIAhqgQDSsKQpPK17E9IB+d5p3UHU71w +Ob1mGIZ2j/GJnC6YmGFPqIZZ+cy3aVOypWf8RVZYPTFCz43ZuC70cP3kl2io75Rp +rWUNKXU+yUdBphHN6KJXUmlH4T9yqXKqnxK+9CnVC/CTlucF9VpktN7wfVxVPsrY +L79iys+FLPKrDkqcjpIJ2l/n/ugcUcXvN477qFCGbRY/3tB3Dmf4AvMPpTsStkXw +Ld+xAHog8upjVGsmXODX4sKjRMIFLIHbM01Iw0ECdKoKIMwjFGenwGmpBZA/Pfxe +AXBejd9KD0stCfHuKqx7Iu5N7Fg8BCLzmcSyoOmwJEo+Z3Z42IfSjOX8rQQ= -----END CERTIFICATE----- diff --git a/internal/certs/data/testclientkey.pem b/internal/certs/data/testclientkey.pem index ce2726e..4e8b564 100644 --- a/internal/certs/data/testclientkey.pem +++ b/internal/certs/data/testclientkey.pem @@ -3,180 +3,180 @@ Public Key Info: Key Security Level: High (3072 bits) modulus: - 00:dd:2f:65:b2:d7:b5:1c:dd:eb:5a:d1:f0:7a:2c:d0 - 11:a7:a8:26:89:5c:8c:06:01:1c:31:26:88:cc:cb:10 - 12:15:3f:8a:78:2e:10:0d:19:20:46:b2:ba:39:8e:24 - fe:2e:d3:10:7b:94:1a:4f:c1:9b:be:78:fb:ee:79:e3 - 09:a6:84:3a:af:d5:0e:3e:56:18:51:d4:af:c9:03:3f - c7:55:93:53:01:1d:6b:3c:ac:06:f3:69:72:12:93:f1 - 95:13:59:83:f4:2d:17:d0:ea:41:2a:12:90:bf:df:24 - bb:3e:ae:ae:33:94:aa:33:5f:34:44:6a:e6:79:05:ef - 12:a3:57:57:45:97:cc:55:43:03:82:d9:3e:21:7f:3e - 88:27:99:8a:c8:96:7e:fe:b6:b6:d4:34:12:2b:a2:5c - b6:a0:77:aa:ee:12:ea:02:49:58:b6:b5:5b:30:b0:2f - c7:a7:c0:08:d9:1a:39:ea:69:87:89:6b:61:b9:a7:b5 - 1f:cc:83:59:41:4b:49:ef:40:41:6e:b9:a8:2f:f1:55 - 48:28:fe:73:29:2b:60:58:54:52:9b:ef:44:cc:8e:5f - dd:64:cd:10:9f:5b:5d:88:dc:aa:0a:46:c8:85:78:e4 - 95:9b:d9:62:13:be:d7:94:cf:92:00:d7:0e:ca:91:52 - 3a:53:ac:b6:57:2c:6a:c3:e9:72:31:09:12:d9:19:8e - 98:ad:47:ec:15:38:d4:0b:a2:6b:52:b0:11:f3:36:3b - 48:bb:18:37:9b:14:98:55:12:32:92:67:23:e4:ff:48 - 3e:29:ff:40:97:ac:aa:db:30:e8:d6:42:ac:fa:15:7f - d6:1c:fc:6f:b3:01:8a:1e:4e:73:1d:81:87:af:3c:7b - 38:a9:9f:55:ae:a0:cd:48:19:49:f3:87:8f:6c:4e:39 - 1d:94:9f:d0:f0:35:ab:c8:ae:64:82:59:85:ca:66:a8 - a0:e6:a0:f2:7f:30:6f:95:75:84:8a:8f:f9:1a:b0:f0 - 81: + 00:c1:37:87:c8:05:bc:2e:18:95:e3:5e:86:ba:17:b7 + b8:67:38:a7:61:df:44:07:89:ed:e5:39:0d:a0:c9:11 + 81:07:b4:24:82:7e:b7:5f:e5:4b:fc:65:23:b0:13:c4 + d8:d4:77:26:e7:63:00:ab:11:f0:ef:cb:c5:c6:c0:de + ad:7b:e5:e1:77:3e:87:28:35:8f:8a:35:be:ae:2b:50 + 5b:d9:28:bb:12:49:4a:99:da:f7:92:fc:4a:a5:38:b6 + 37:5f:c8:bf:f6:5f:d1:3f:ee:3d:d5:63:0d:7f:ff:37 + 26:84:b2:60:d4:eb:34:f8:91:cf:70:fb:a3:d6:f9:b0 + 2d:ad:6f:ed:e1:93:08:d9:6d:d0:af:03:6e:b9:61:3e + 5b:5e:24:1d:e1:5a:89:4d:22:85:43:8d:17:a6:64:59 + aa:c1:47:95:19:9f:d7:26:8b:3b:39:30:74:ee:9d:3c + c8:23:85:84:b9:7d:8d:70:a0:10:30:e4:2a:67:27:02 + 29:77:62:18:ee:76:51:06:4a:37:73:14:bb:24:54:3e + 31:ae:d4:39:1a:c6:dd:24:7c:87:85:c5:1d:82:1f:af + a9:7d:9b:15:29:25:c1:dc:15:8a:5d:6a:21:41:07:9f + 1a:5c:44:c6:a5:b9:94:38:bb:5b:42:80:d8:4a:35:01 + eb:27:35:50:9f:56:91:54:06:1d:5f:53:f1:7e:82:1b + e7:0b:74:fb:6e:4c:89:5c:3c:cb:c1:1c:ac:c1:fd:ed + 2b:36:e9:e3:40:b4:b7:87:64:da:d8:f5:a9:6a:c7:f0 + ac:f2:03:a2:23:cc:00:d8:d8:1a:d7:7f:2d:66:e0:89 + 45:7b:03:3a:7a:26:f5:1a:ed:74:f2:da:8e:14:9b:ee + 7d:f7:22:af:19:0e:16:15:18:42:26:da:97:39:30:9c + 5a:23:9d:d5:7b:65:a1:99:e9:85:3d:f6:30:50:0b:73 + 74:68:30:ac:1a:18:f4:c7:9c:85:db:4d:2c:66:6a:1f + 11: public exponent: 01:00:01: private exponent: - 14:ff:c0:f9:ff:bc:b4:26:e5:87:53:d3:2e:e6:3e:42 - ce:d6:0a:02:94:84:be:b5:30:46:02:50:8e:90:e0:cf - b6:b0:b7:a6:bd:48:cc:d5:8b:d8:ea:72:ff:af:dd:17 - 3c:be:d1:1b:ca:6d:cd:10:a6:86:a8:d9:d2:44:44:27 - d0:65:51:65:0c:27:34:07:dc:7b:38:64:10:03:7c:f4 - a1:cd:40:de:24:3a:e0:21:bc:ef:33:1d:9f:61:e8:57 - ac:e4:9c:c0:7b:df:7c:f8:20:83:ac:0b:8e:0b:d3:62 - eb:8a:8e:03:5b:a3:e5:08:ae:df:a7:fe:85:92:e8:a5 - ae:58:46:72:d6:fc:91:43:b1:7b:a4:c0:5f:51:c3:50 - 0d:e2:67:e8:af:51:13:41:a9:8d:ef:fb:a1:a4:e2:84 - 7c:2b:a0:50:c5:fe:ed:84:a5:25:83:86:4a:d3:0f:56 - 37:38:e6:1e:26:7d:45:22:0b:ba:22:35:be:f8:8b:1b - 72:90:13:c4:1f:c5:d1:34:b5:0e:b2:ee:f7:e1:b9:5e - a2:29:8d:f9:6e:23:4b:50:8f:35:c8:a9:f3:d2:1f:dd - ce:a0:96:50:2d:2e:af:cf:b5:e1:20:e7:e9:d2:49:ed - b5:0e:5b:3e:d1:4b:f1:fa:c2:73:3a:1b:51:34:7e:75 - 30:06:d2:47:d2:a8:2a:45:be:16:fb:8f:63:84:85:b7 - bf:f7:c4:c5:3d:95:56:8c:d1:02:7f:58:ac:4d:11:7b - c5:55:f3:c8:4e:d7:d9:aa:62:b0:e3:1e:04:5c:97:d1 - ca:e2:71:aa:8b:33:b4:34:e9:04:d4:70:7c:f4:cb:57 - 19:c1:03:23:f4:bc:4d:91:8f:b2:9a:99:1c:6c:81:2d - 4d:2d:e9:a1:e3:ce:e3:c9:62:52:89:1f:47:86:61:f1 - dd:bc:46:8d:79:0a:99:9d:aa:4b:a9:0a:72:54:db:dc - ae:48:be:60:4a:73:99:d8:3c:9e:07:78:05:df:87:39 + 70:0e:fd:af:d3:2b:ad:6c:52:d9:f8:43:99:00:12:6c + 5f:69:2b:22:87:33:54:4f:f9:69:fc:e9:db:7b:61:ac + 7c:c4:4c:7c:66:73:81:a9:61:a5:73:1e:fc:8a:aa:9a + ba:b6:94:18:94:81:99:b5:a1:0f:e2:15:c5:4c:ac:98 + df:07:96:f8:ea:89:c6:97:31:b5:8d:b0:16:21:46:cc + ce:28:62:3e:9b:c5:29:70:26:2f:d8:24:8e:a8:52:7d + d1:0e:83:ce:a7:09:9b:d3:57:87:3f:98:5f:c8:ab:ba + aa:31:2e:19:ae:84:1d:39:ab:9e:b2:42:f6:75:ff:68 + ae:73:00:fa:d7:a4:c5:3d:7c:4f:54:65:4e:1c:88:e6 + c2:b5:9d:a2:ca:38:61:45:09:17:01:68:5a:f7:4e:4d + cb:24:f1:e3:57:a1:97:58:1e:b3:ef:57:91:e0:1d:95 + 51:8c:a9:4a:4e:f7:cd:fe:f7:04:f3:ff:67:ad:e7:01 + 14:dc:7e:e4:00:c0:38:51:2f:04:db:39:6c:f1:1b:a4 + a5:f1:b4:5a:c3:17:d2:41:1a:5a:b5:f3:69:3b:b8:ba + 7b:59:96:d7:b2:c2:2c:9a:dd:e9:42:ce:fb:c8:22:fc + c5:33:97:6d:68:89:cd:e5:bc:2e:cc:9d:23:65:18:04 + 0c:83:b6:35:7e:16:09:96:d1:48:61:31:b1:ce:f8:50 + f0:14:ba:57:2f:02:1b:61:9c:bc:81:c1:ef:b3:bf:2f + fb:36:af:18:8c:90:40:55:5a:fd:a7:d4:ed:3b:94:a6 + df:ab:eb:6c:d2:bc:e3:80:7e:d5:06:21:28:9b:04:65 + b5:cc:04:b2:44:e9:2d:3b:7d:de:24:90:8d:fb:90:2d + 40:17:51:cf:a7:fa:ee:54:89:8f:c0:f4:e4:c2:bd:44 + 94:1d:8d:fc:b7:d7:05:4d:46:dc:63:1f:7f:d8:b4:8b + 11:db:37:be:4d:e9:2b:33:b9:6b:8c:a7:f0:43:56:c5 prime1: - 00:e9:63:0f:d7:49:31:27:a8:36:fe:95:bd:8d:05:c1 - 35:48:2e:03:4f:a6:57:54:3a:a4:95:3f:8e:9f:28:7c - d2:df:af:54:36:9e:7c:9f:c3:b9:64:8f:c0:b0:96:3c - aa:01:f6:9a:be:83:e2:85:20:0d:33:de:88:97:af:6f - be:3f:53:5a:a3:77:02:fd:81:17:91:3b:b2:2d:ab:78 - db:d9:43:db:04:69:82:61:30:e4:96:ac:88:8b:f6:3f - 56:c4:49:fd:d5:e5:8c:9d:30:ad:cf:d9:8d:5c:87:b5 - 27:4b:09:8e:19:ed:e2:11:3f:69:b2:47:be:70:39:11 - 41:a3:db:bb:b9:0e:e4:7b:50:d0:d2:c2:89:81:36:b9 - 6b:a6:fe:94:5b:06:66:e6:ed:86:52:42:5e:a9:0e:18 - db:18:f9:14:21:3d:e0:3c:8d:79:c3:f5:d2:cc:51:65 - fb:1c:49:ed:0a:d5:33:99:34:16:f9:1d:68:4a:78:da - 5f: + 00:f0:57:25:fd:aa:7e:98:13:08:28:99:16:eb:af:2e + 22:f6:e6:d7:bd:df:49:57:17:71:bf:21:ba:bf:75:54 + 5a:38:92:64:8c:4a:10:d4:4f:77:18:44:c2:79:f0:9d + 72:26:2e:9a:27:5d:e7:41:0b:c6:65:cb:fa:89:6d:9b + fb:87:78:e2:87:22:d4:92:21:f5:3a:57:fa:b0:bf:bb + 66:a2:bf:43:af:e8:58:b4:e2:a1:ed:97:62:09:0d:49 + ca:4c:99:a2:f4:f3:31:df:80:8e:56:be:64:9d:72:59 + ef:e9:db:4d:a3:e2:cf:79:1e:99:89:b2:f1:e3:2d:bc + 8f:a0:2a:2f:a6:f0:21:18:2d:f1:57:20:55:c1:c9:18 + c1:64:c6:9c:00:df:b2:54:55:8d:fe:d3:46:a0:5c:2e + f8:f7:10:b6:27:3a:4a:79:a1:14:b1:0c:c3:72:5b:2b + 66:d6:85:2c:7e:58:72:eb:33:62:73:34:e5:38:87:2e + 17: prime2: - 00:f2:9d:ae:5f:bd:b7:a3:87:a7:8d:30:46:06:8b:15 - a9:e5:a9:58:1c:2b:3a:7e:78:35:36:56:31:42:df:46 - 87:e8:57:0d:6e:99:de:cf:fb:a8:72:16:71:4b:b3:ad - ed:74:07:cb:cf:7d:2b:12:89:66:c4:0f:8a:ea:e3:37 - 17:2c:75:92:11:7a:a6:da:29:24:33:9b:69:c2:64:68 - 03:db:31:de:fe:1d:a2:4d:9d:91:9f:f0:50:b8:8f:d0 - 22:11:b9:b0:95:98:5e:65:bf:45:97:9b:35:f2:98:27 - 46:7c:b2:86:eb:7b:8b:57:f2:c3:49:47:7d:01:4a:9a - b0:e6:67:05:e5:61:7a:ab:63:c8:cb:d8:44:69:88:72 - a5:a9:60:89:60:df:e6:d9:4d:16:2b:35:7b:20:00:f3 - 3c:d1:78:f9:22:eb:48:c3:7f:78:63:e6:34:60:48:30 - 66:02:bb:38:c2:94:2e:b9:86:b2:2f:9a:4f:17:7f:e1 - 1f: + 00:cd:ce:5d:fb:04:16:34:f4:de:02:7d:00:07:3e:b0 + 94:8c:f4:3a:62:05:37:1a:4f:d8:40:2e:31:11:07:77 + 09:8b:bd:76:6e:85:b9:43:df:3f:86:cb:db:6d:fe:c6 + 4c:ca:e1:16:ce:5c:0e:e1:b1:10:0d:8d:48:99:d7:43 + 7f:6c:b6:20:b2:cd:0c:56:26:02:18:81:e1:67:e5:cd + b3:66:1e:77:dc:49:6a:5d:8c:9c:0e:24:14:3e:a1:4a + 7e:cf:72:e6:e4:03:e6:38:41:fa:2b:91:71:6c:33:b0 + ec:07:3a:be:5b:f8:74:f5:e4:1f:9c:c4:d0:d4:75:a8 + 35:09:05:0f:7f:54:4e:2a:bc:cc:92:de:1e:f4:74:8a + 56:36:e0:b1:37:cf:b3:9c:57:05:76:59:69:c3:03:de + c2:33:0c:c4:a1:4f:2a:b8:3c:20:63:c9:58:96:1a:e2 + 62:ce:bf:fb:a9:51:b0:66:99:35:d6:d2:60:59:72:bd + 17: coefficient: - 00:93:3e:7c:b9:ea:87:52:37:fa:d5:0a:36:fb:e1:d0 - fc:62:4d:00:0b:ad:a8:fb:bd:34:53:96:c2:6c:a1:6a - 49:b7:a0:24:33:16:95:79:14:ac:bb:75:8d:78:e9:10 - fa:be:44:60:58:94:4a:9c:ba:64:1d:86:27:8b:7f:51 - 4d:80:b0:ff:7a:91:c0:4d:a4:aa:d1:f1:79:7d:8f:71 - 49:12:73:d4:44:5f:0c:2e:55:a6:d9:13:b8:3b:e5:dc - e1:14:98:7e:eb:5b:60:ad:d7:4b:da:c0:d8:3f:bf:70 - 92:53:8c:31:6a:8b:61:5e:a3:7d:ff:84:2c:7d:ed:9f - 74:29:9a:e7:14:fb:c3:ab:8e:9f:60:6a:98:ab:86:0b - ea:fb:ff:20:2f:3b:a7:76:03:3a:55:bb:b2:c6:9c:b5 - 66:36:b8:1c:7f:9b:b6:62:89:ff:6a:d6:35:58:0b:f0 - 55:27:01:f0:67:8d:88:3f:74:48:3d:bf:8c:fc:05:62 - 47: + 33:6a:05:3e:1e:46:46:58:e2:61:38:6a:c2:8f:77:a2 + 27:b7:19:38:75:40:d6:8c:87:bc:65:a6:24:c3:97:e5 + ef:70:1b:2c:4e:9c:08:ca:1d:eb:97:11:74:14:bb:99 + de:22:a1:6e:bc:6c:c6:25:98:8a:8e:17:f4:f9:4d:a3 + 1d:01:5e:26:0e:b4:e8:1c:aa:06:7c:66:b1:89:5a:b4 + 82:65:d1:bf:20:cb:b2:57:a8:af:7f:00:07:00:7c:5e + d4:09:60:0c:0a:6e:a8:e1:16:1b:04:95:b1:bc:2b:35 + ad:80:78:0a:0a:1d:5f:c9:cc:24:3a:5e:20:03:50:44 + b8:b0:f3:f1:17:ff:41:b8:5d:56:9b:1c:f1:e6:2b:c6 + ba:a2:8c:18:25:8c:d5:90:f1:28:66:29:bb:40:3d:b2 + f9:65:99:2e:b7:1b:e3:d0:d2:1a:d7:96:70:cc:f6:74 + c5:2e:bf:f5:c9:60:c0:ff:38:f8:a8:db:1a:7d:6a:4e + exp1: - 00:99:16:2d:91:dd:a4:ac:8a:9e:68:27:f8:89:c4:38 - 93:a6:a0:e7:f3:1a:fd:35:76:b1:f6:64:16:3d:37:e5 - 88:bc:c8:d8:c8:6a:f4:fc:26:fa:38:88:42:b0:92:1b - 80:b8:80:f5:c7:f9:e2:5f:c8:42:60:bf:9b:81:43:c6 - 5c:58:55:68:a2:c8:b1:e1:6f:07:f2:6f:e1:d4:2b:21 - bf:b3:a7:da:c5:ee:1f:63:79:1a:b7:ea:bc:36:72:73 - e1:8a:27:ae:a4:db:49:7c:e2:2d:60:a5:27:20:86:b3 - c0:ee:6b:7a:16:6f:ff:55:a8:ee:bf:ce:67:90:5d:1e - 80:9b:e6:ca:1f:fd:30:c9:e2:9c:d7:62:5b:a7:b2:29 - b5:ff:78:06:00:1f:16:e8:6a:ed:2c:8f:f4:5f:97:ab - 9e:2b:a7:56:18:e7:e9:6a:4e:b2:8c:63:76:be:26:b6 - 6a:1c:88:31:40:65:d0:ce:b1:68:50:47:85:dd:33:a0 - a9: + 5c:1b:49:f7:f9:0b:23:04:c8:2f:a6:db:dd:de:f8:f3 + 75:63:ea:72:5d:cc:21:90:5e:8b:3d:45:f0:71:ea:ad + d8:d8:61:a8:52:0a:39:13:6b:34:e5:c5:12:2e:60:68 + 8a:b1:79:6a:74:d6:57:5b:47:e1:63:56:d4:ac:29:07 + 30:57:e7:98:9a:84:94:ac:66:ea:c1:24:d5:ef:e4:c5 + e4:c1:20:13:9e:1b:c0:d6:c9:ef:e0:00:36:2f:dd:83 + a5:ef:8b:40:0c:a3:a4:60:04:2c:c2:32:95:14:69:db + 43:e8:43:cc:f6:f3:44:1b:b2:03:cf:8c:5b:df:ff:4f + 9b:b6:0f:25:0f:09:df:d6:5b:93:64:54:f9:3b:34:3d + 89:7d:83:f3:e1:c6:da:03:1f:b3:f5:0c:30:10:a3:ff + cd:cf:9d:bf:52:db:8f:d9:67:b0:a2:8f:94:97:d3:fe + 49:60:28:39:13:74:97:26:ce:28:10:b1:78:04:76:69 + exp2: - 00:8d:b1:5f:7c:94:ed:62:39:40:b6:a9:a1:cc:02:80 - c5:77:d6:9e:19:dd:79:4d:11:61:6a:79:8e:4d:92:de - bb:53:0b:3c:52:02:d5:69:3c:7d:95:1b:dc:51:2d:00 - 00:35:0a:b4:92:5a:74:c4:5f:b0:c0:02:9f:cc:2c:a5 - 29:08:93:25:9a:c5:ba:1a:a1:7a:7e:15:5e:ff:e3:ea - 07:8e:85:a2:c9:60:7f:40:bb:2c:a8:6f:0e:85:ab:a0 - 0f:b5:b0:70:1b:fe:1f:eb:66:78:fb:60:ef:71:de:40 - d9:de:cb:d9:16:40:52:12:2c:3a:b7:5a:63:fc:54:18 - e2:05:bd:d7:68:ae:b4:98:d2:2f:1c:36:13:46:5b:25 - 31:f1:28:eb:32:c3:b1:2b:e9:e4:6f:99:cd:6d:d4:80 - 3a:5d:d0:3c:18:93:b7:2c:4e:0e:fe:b1:1c:97:ba:b1 - 61:72:68:eb:6e:60:62:a5:81:b0:21:33:0a:cc:1b:a8 - 5b: + 6e:6d:c5:d5:b3:8a:aa:dd:9c:e6:5e:e6:0d:fd:20:48 + 85:1d:62:da:47:8c:1a:8d:2f:2e:b8:da:51:15:dd:54 + 7c:eb:ab:49:80:6d:39:32:e7:e6:4f:2a:2d:6a:20:43 + 02:35:26:c4:91:76:d6:b8:e8:31:2d:57:00:5d:15:f5 + a0:82:55:27:3b:88:dc:0c:c6:e1:19:87:b5:f5:03:9b + b8:36:ae:ff:bf:50:d8:63:63:34:df:3d:11:a1:ff:d3 + ed:41:ed:0b:f9:df:a4:de:19:fb:18:ae:70:6d:88:08 + 0d:95:02:a1:5c:be:7d:55:eb:74:75:d2:cb:bd:5a:05 + 23:12:d9:0e:ec:50:88:f4:07:1c:e3:1c:5e:f4:cd:69 + 97:46:97:30:a8:3c:ea:ad:72:db:de:fc:35:cc:b4:d1 + 25:0d:3b:d0:86:27:18:f6:02:37:28:c9:64:b9:86:31 + 98:58:41:13:c8:26:4b:d6:f7:a1:8d:fe:6e:e0:76:ff + Public Key PIN: - pin-sha256:iFdBnKP/7hZCLdj7qqTtdNPFjpZGka259fSYvv3X02U= + pin-sha256:Zv2mSFRUYM7ofg5obMJJxhZpnuvO7gkCOlqfDK1gzks= Public Key ID: - sha256:8857419ca3ffee16422dd8fbaaa4ed74d3c58e964691adb9f5f498befdd7d365 - sha1:aac584e0e34ca0a8a5bf9641adbd3ec1d1e075e0 + sha256:66fda648545460cee87e0e686cc249c616699eebceee09023a5a9f0cad60ce4b + sha1:155a6bfa2fc8fa5b93ff27966b88496076fedf31 -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY-----