EAI test script and data
authorDmitry Belyavskiy <beldmit@gmail.com>
Wed, 18 Sep 2019 18:27:17 +0000 (21:27 +0300)
committerDmitry Belyavskiy <beldmit@gmail.com>
Wed, 26 Aug 2020 11:04:17 +0000 (14:04 +0300)
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/9654)

test/recipes/25-test_eai_data.t [new file with mode: 0644]
test/recipes/25-test_eai_data/ascii_chain.pem [new file with mode: 0644]
test/recipes/25-test_eai_data/ascii_leaf.pem [new file with mode: 0644]
test/recipes/25-test_eai_data/san.ascii [new file with mode: 0644]
test/recipes/25-test_eai_data/san.utf8 [new file with mode: 0644]
test/recipes/25-test_eai_data/utf8_chain.pem [new file with mode: 0644]
test/recipes/25-test_eai_data/utf8_leaf.pem [new file with mode: 0644]

diff --git a/test/recipes/25-test_eai_data.t b/test/recipes/25-test_eai_data.t
new file mode 100644 (file)
index 0000000..ccdb09d
--- /dev/null
@@ -0,0 +1,53 @@
+#! /usr/bin/env perl
+# Copyright 2019 The OpenSSL Project Authors. All Rights Reserved.
+#
+# Licensed under the Apache License 2.0 (the "License").  You may not use
+# this file except in compliance with the License.  You can obtain a copy
+# in the file LICENSE in the source distribution or at
+# https://www.openssl.org/source/license.html
+
+
+use strict;
+use warnings;
+
+use File::Spec;
+use OpenSSL::Test::Utils;
+use OpenSSL::Test qw/:DEFAULT srctop_file/;
+
+setup("test_eai_data");
+
+#./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/ascii_chain.pem test/recipes/25-test_eai_data/ascii_leaf.pem
+#./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/utf8_chain.pem test/recipes/25-test_eai_data/utf8_leaf.pem
+#./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/utf8_chain.pem test/recipes/25-test_eai_data/ascii_leaf.pem
+#./util/wrap.pl apps/openssl verify -nameopt utf8 -no_check_time -CAfile test/recipes/25-test_eai_data/ascii_chain.pem test/recipes/25-test_eai_data/utf8_leaf.pem
+
+plan tests => 11;
+
+require_ok(srctop_file('test','recipes','tconversion.pl'));
+my $folder = "test/recipes/25-test_eai_data";
+
+my $ascii_pem = srctop_file($folder, "ascii_leaf.pem");
+my $utf8_pem  = srctop_file($folder, "utf8_leaf.pem");
+
+my $ascii_chain_pem = srctop_file($folder, "ascii_chain.pem");
+my $utf8_chain_pem  = srctop_file($folder, "utf8_chain.pem");
+
+my $out = "san.tmp";
+
+ok(run(app(["openssl", "x509", "-ext", "subjectAltName", "-in", $ascii_pem, "-noout", "-out", $out])));
+is(cmp_text($out, srctop_file($folder, "san.ascii")), 0, 'Comparing othername for ASCII domain');
+
+ok(run(app(["openssl", "x509", "-ext", "subjectAltName", "-in", $utf8_pem, "-noout", "-out", $out])));
+is(cmp_text($out, srctop_file($folder, "san.utf8")), 0, 'Comparing othername for IDN domain');
+
+unlink $out;
+
+ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", "学生\@elementary.school.example.com", "-CAfile", $ascii_chain_pem, $ascii_pem])));
+ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-verify_email", "医生\@大学.example.com", "-CAfile", $utf8_chain_pem, $utf8_pem])));
+
+ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $ascii_pem])));
+ok(run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem, $utf8_pem])));
+
+ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $ascii_chain_pem, $utf8_pem])));
+ok(!run(app(["openssl", "verify", "-nameopt", "utf8", "-no_check_time", "-CAfile", $utf8_chain_pem,  $ascii_pem])));
+
diff --git a/test/recipes/25-test_eai_data/ascii_chain.pem b/test/recipes/25-test_eai_data/ascii_chain.pem
new file mode 100644 (file)
index 0000000..ea258a3
--- /dev/null
@@ -0,0 +1,53 @@
+-----BEGIN CERTIFICATE-----
+MIIEjDCCA3SgAwIBAgICEAEwDQYJKoZIhvcNAQELBQAwgbsxCzAJBgNVBAYTAlVT
+MQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEYMBYGA1UECgwP
+RXhhbXBsZSBDb21wYW55MS4wLAYDVQQLDCVFeGFtcGxlIENvbXBhbnkgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDDBJFeGFtcGxlIENvbXBhbnkgQ0ExIDAe
+BgkqhkiG9w0BCQEWEWFsaWNlQGV4YW1wbGUuY29tMB4XDTE5MDMyNzA5MzkwMloX
+DTI5MDMyNDA5MzkwMlowgb0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEYMBYG
+A1UECgwPRXhhbXBsZSBDb21wYW55MTswOQYDVQQLDDJFeGFtcGxlIENvbXBhbnkg
+SW50ZXJtZWRpYXRlIENlcnRpZmljYXRlIEF1dGhvcml0eTEoMCYGA1UEAwwfRXhh
+bXBsZSBDb21wYW55IEludGVybWVkaWF0ZSBDQTEgMB4GCSqGSIb3DQEJARYRYWxp
+Y2VAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9
+G/Vjs763ft6Jz6F63pNY2cc0jzCBxgw6c7UY3QC9Szmi7F/YxW+mCXwUFy4kT16X
+gujoV1prCJC7ywF2zmapIqRg08oUMdyYAfqi+OH1sbelih+J9ptvoLlQ4HULkXqP
+r9EAjI90shcVhFM/+C1C+7AC+fM74Q89U5D4i6GWFvGjVT88/fsQYwRGoB7e13gQ
+DZTFDpun8ayCI2cuIDEmpnplNpYYIbCdvBNNTp1D82g5eEz1VJVEwnr6JyVUFg5U
+aHApPzaqAXoIDjjW9G0RdX61zNAdbtjqZmP98Dt1MNGyRVHNUiafY2Zr9CtR02Fe
+AzVq8HGKCQ+FXy5VQXB7AgMBAAGjgZUwgZIwHQYDVR0OBBYEFAw/3qi2nZHj2xms
+cUd3PxN+/lxzMB8GA1UdIwQYMBaAFE7KwQ4mMV6AoFSttAbzi7rsIMY2MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMCwGA1UdHgQlMCOgITAfgR1l
+bGVtZW50YXJ5LnNjaG9vbC5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAQEA
+DwUJJlG487NnzXCZjhztXGwjDmPb5ZDybIsOQH7CVSoajLLFaAVAIUYy9kFSENfZ
+gBT2LfJbW4i4ziRAIgHwWpjZAItirFwZtyl8BWJF4xdUmd+m0gj0ReEgPWKJdgLc
+O9quzLsGZ2n//oFG97gWqctIEw1ugOhwdeTcaC2WZMf62sE0yqjOOf+fynfCFjUV
++enle/EyAFghVBbuF/Yk6Y7/x+7pjncTHKl9zTBLWp5yH2JvQ5dCloho9jD16TGs
+TRL/b1I154INi/XwZMtFLxNxosB1HC86sr4l4GVO8nZxzgJ+8cppp1goGzEUDY1F
+lMWa0rQbcHhk98IaP+OAWg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEXjCCA0agAwIBAgIJAMujkjMG9iZjMA0GCSqGSIb3DQEBCwUAMIG7MQswCQYD
+VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xGDAW
+BgNVBAoMD0V4YW1wbGUgQ29tcGFueTEuMCwGA1UECwwlRXhhbXBsZSBDb21wYW55
+IENlcnRpZmljYXRlIEF1dGhvcml0eTEbMBkGA1UEAwwSRXhhbXBsZSBDb21wYW55
+IENBMSAwHgYJKoZIhvcNAQkBFhFhbGljZUBleGFtcGxlLmNvbTAeFw0xOTAzMjcw
+NjIzNDBaFw0zOTAzMjIwNjIzNDBaMIG7MQswCQYDVQQGEwJVUzELMAkGA1UECAwC
+Q0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xGDAWBgNVBAoMD0V4YW1wbGUgQ29t
+cGFueTEuMCwGA1UECwwlRXhhbXBsZSBDb21wYW55IENlcnRpZmljYXRlIEF1dGhv
+cml0eTEbMBkGA1UEAwwSRXhhbXBsZSBDb21wYW55IENBMSAwHgYJKoZIhvcNAQkB
+FhFhbGljZUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAKhAtiyuvE09abRB1qPBnnMkzU7mRX3xcbOPT/NzfDTkbuTVbcJ98Ei3TRv1
+fmS5Ds1t2fcc493Cx1BTPmfdZSWhvONa9PDZ84wmtkaoU0Utzzdm+62zb/0/I0wh
+MgGaC25D8IRZ5yp5eTtX/yasOVaij9UjphAoHa4eD1GGzpc/LNI9hrV15BmdfcS2
+3FbtlUjFdIjsR41bTVkEb5nwBSrixV5MAcV6Y6I7mSykSTrytY6DcJs/k9yrzOM9
+p6x3v9Npyzny1vUxHWJmsSPwlfxCigcFU7I1ixybWuJB6opPu59h46r4VOVedhcj
+chSa9UcSLIKfmEhrQnw3YIUhudkCAwEAAaNjMGEwHQYDVR0OBBYEFE7KwQ4mMV6A
+oFSttAbzi7rsIMY2MB8GA1UdIwQYMBaAFE7KwQ4mMV6AoFSttAbzi7rsIMY2MA8G
+A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IB
+AQCBmOcwt/AqQjCAFRdqLFsWdGsDC2iQE4lJhsv6oypBsNNxrYV962JrrgkZThPv
+e+OkBmPrN2izT7UX5Yxbi8qmCe/eaY239GCIgRQs6wehMqlGPx5cZeruwLHDjcsv
+4/KmyDJ9u1lx83OsORxcAr4W+HEIFtLEueQkGbJTMZSKMKkbSa4Ik2bji6ctZBkO
+qWtD5s4C0P29Z8CJL1jRrYNjFg5alGSzoYi26c1o9Oz35pNiurxySE+iDHjkj1vq
+d9+F+869tkXsbuGucdv7oKGZrfdTWKp+LiRQBJzjA9nrZuUqMSMsmSXpXPHV3BdI
+4k1AgvwY9/u+RlmeGW2qRTZJ
+-----END CERTIFICATE-----
diff --git a/test/recipes/25-test_eai_data/ascii_leaf.pem b/test/recipes/25-test_eai_data/ascii_leaf.pem
new file mode 100644 (file)
index 0000000..286d317
--- /dev/null
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIE3DCCA8SgAwIBAgIUPTX8yrPZtf85fFr2BqMIknud10EwDQYJKoZIhvcNAQEL
+BQAwgb0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEYMBYGA1UECgwPRXhhbXBs
+ZSBDb21wYW55MTswOQYDVQQLDDJFeGFtcGxlIENvbXBhbnkgSW50ZXJtZWRpYXRl
+IENlcnRpZmljYXRlIEF1dGhvcml0eTEoMCYGA1UEAwwfRXhhbXBsZSBDb21wYW55
+IEludGVybWVkaWF0ZSBDQTEgMB4GCSqGSIb3DQEJARYRYWxpY2VAZXhhbXBsZS5j
+b20wHhcNMTkwNjA4MTA0NDA2WhcNMjAwNjE3MTA0NDA2WjCBiDELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMRgwFgYDVQQK
+DA9FeGFtcGxlIENvbXBhbnkxHTAbBgNVBAsMFEV4YW1wbGUgQ29tcGFueSBVbml0
+MRswGQYDVQQDDBJBbGljZSBBc2NpaSBEb21haW4wggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQDfpjeb8F/YlO5NYh+5+UcdaKIG3cpORrYZddUYprsbn8ic
+Utk4OXOklvMC1PwhW/8KcwuF0pUsQ/QZUmiJWv2umopmvl05OvPbTVfE4nE9JezF
+bNagPPrAugsbAC/1K65iPuZO4ZEZV7zjHxbdQk8fPzAZUfRqJsyinSnc2r3P4OvJ
+BffRJk8ZDJvx8kT3POYScSjTrSNVOHT3mT+2S+z00vwqKWdtroVyUr7TyC0/ocbf
+AKly1TmkD9RZNJ3ASlG0ZVri/a/TuglEs0WLtZran4IuKkzNnWccDILke0lkXZ+H
+mC1eKY3fYt8tAN+nkdTE1liJJNth4SpmYHLKoqstAgMBAAGjggEFMIIBATAJBgNV
+HRMEAjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAzBglghkgBhvhCAQ0EJhYkT3BlblNT
+TCBHZW5lcmF0ZWQgQ2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBTCGcnEt0A+
+oJcD1GbkcwiWGG8f9DAfBgNVHSMEGDAWgBQMP96otp2R49sZrHFHdz8Tfv5cczAO
+BgNVHQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMD0G
+A1UdEQQ2MDSgMgYIKwYBBQUHCAmgJgwk5a2m55SfQGVsZW1lbnRhcnkuc2Nob29s
+LmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQALoWleKWXxN/WXsIMvceNO
+IfAy01Yrks0+qVhD0Z9GOAliqXOcSdr9ns+8Vhh56qPAevdP6vqACE8LnQ5Uwq1d
+SV0dxEKIaJoWRI+CnbKu+TVrR9mZAyABbPqWIBP41luj32Y/tL85k8gPF02hp0Vw
+tqrJjbCyzY4Sly14v9dBdxkJPPm+uPcgICbaCthSVm2iB9Bh+FdwJA9As+texqyI
+3Yzc6GcQpRB9M5kb5Ibqw3RMEzBGkdBCBehh06hDrx6c/JmgCspLZjCgImjn7eLk
+VyPZTiTcnTFUJuL4F/z/aAUAXzE2ueQCCRQOeX/x5KC9CElpFCw7RcpcZdCAw9KN
+-----END CERTIFICATE-----
diff --git a/test/recipes/25-test_eai_data/san.ascii b/test/recipes/25-test_eai_data/san.ascii
new file mode 100644 (file)
index 0000000..e719e26
--- /dev/null
@@ -0,0 +1,2 @@
+X509v3 Subject Alternative Name: 
+    othername: SmtpUTF8Mailbox::学生@elementary.school.example.com
diff --git a/test/recipes/25-test_eai_data/san.utf8 b/test/recipes/25-test_eai_data/san.utf8
new file mode 100644 (file)
index 0000000..cf62d9d
--- /dev/null
@@ -0,0 +1,2 @@
+X509v3 Subject Alternative Name: 
+    othername: SmtpUTF8Mailbox::医生@大学.example.com
diff --git a/test/recipes/25-test_eai_data/utf8_chain.pem b/test/recipes/25-test_eai_data/utf8_chain.pem
new file mode 100644 (file)
index 0000000..7939025
--- /dev/null
@@ -0,0 +1,53 @@
+-----BEGIN CERTIFICATE-----
+MIIEhTCCA22gAwIBAgICEAIwDQYJKoZIhvcNAQELBQAwgbsxCzAJBgNVBAYTAlVT
+MQswCQYDVQQIDAJDQTEWMBQGA1UEBwwNU2FuIEZyYW5jaXNjbzEYMBYGA1UECgwP
+RXhhbXBsZSBDb21wYW55MS4wLAYDVQQLDCVFeGFtcGxlIENvbXBhbnkgQ2VydGlm
+aWNhdGUgQXV0aG9yaXR5MRswGQYDVQQDDBJFeGFtcGxlIENvbXBhbnkgQ0ExIDAe
+BgkqhkiG9w0BCQEWEWFsaWNlQGV4YW1wbGUuY29tMB4XDTE5MDMyNzA5NDEzOVoX
+DTI5MDMyNDA5NDEzOVowgb0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEYMBYG
+A1UECgwPRXhhbXBsZSBDb21wYW55MTswOQYDVQQLDDJFeGFtcGxlIENvbXBhbnkg
+SW50ZXJtZWRpYXRlIENlcnRpZmljYXRlIEF1dGhvcml0eTEoMCYGA1UEAwwfRXhh
+bXBsZSBDb21wYW55IEludGVybWVkaWF0ZSBDQTEgMB4GCSqGSIb3DQEJARYRYWxp
+Y2VAZXhhbXBsZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9
+G/Vjs763ft6Jz6F63pNY2cc0jzCBxgw6c7UY3QC9Szmi7F/YxW+mCXwUFy4kT16X
+gujoV1prCJC7ywF2zmapIqRg08oUMdyYAfqi+OH1sbelih+J9ptvoLlQ4HULkXqP
+r9EAjI90shcVhFM/+C1C+7AC+fM74Q89U5D4i6GWFvGjVT88/fsQYwRGoB7e13gQ
+DZTFDpun8ayCI2cuIDEmpnplNpYYIbCdvBNNTp1D82g5eEz1VJVEwnr6JyVUFg5U
+aHApPzaqAXoIDjjW9G0RdX61zNAdbtjqZmP98Dt1MNGyRVHNUiafY2Zr9CtR02Fe
+AzVq8HGKCQ+FXy5VQXB7AgMBAAGjgY4wgYswHQYDVR0OBBYEFAw/3qi2nZHj2xms
+cUd3PxN+/lxzMB8GA1UdIwQYMBaAFE7KwQ4mMV6AoFSttAbzi7rsIMY2MBIGA1Ud
+EwEB/wQIMAYBAf8CAQAwDgYDVR0PAQH/BAQDAgGGMCUGA1UdHgQeMBygGjAYgRZ4
+bi0tcHNzMjVjLmV4YW1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4IBAQCEpk1PVmSQ
+LoDTVDZlhbJmRP4UNq0ODaKNJHwpqVm0Q0lpg694brvLapmgAeRHPHHdTOv8VdGj
+y4/NvaWRjdBqnI6sVobMfC0JJtHQufWpQ4i85D6ljh6RQX62Tz9/EGd6jgE/Pjrw
+siU4geDY4c4EWGskJAGHaMYSTjQdutSP8NAxFXcupyniDyF75Kjfeb7kVj3zuvhS
+UYN13IeB2498t46BNqYVP1Sh51UMg4vkddHt3rI37WdilDq2j5e3qcUvYGFmiU7O
+j7P48QXoDHsWZmUvZcXlFky+9eFYd1a3QAV7AMc2iD93+GJBbwqxdN1393Y9Kk4R
+Y/RIVt183q8X
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEXjCCA0agAwIBAgIJAMujkjMG9iZjMA0GCSqGSIb3DQEBCwUAMIG7MQswCQYD
+VQQGEwJVUzELMAkGA1UECAwCQ0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xGDAW
+BgNVBAoMD0V4YW1wbGUgQ29tcGFueTEuMCwGA1UECwwlRXhhbXBsZSBDb21wYW55
+IENlcnRpZmljYXRlIEF1dGhvcml0eTEbMBkGA1UEAwwSRXhhbXBsZSBDb21wYW55
+IENBMSAwHgYJKoZIhvcNAQkBFhFhbGljZUBleGFtcGxlLmNvbTAeFw0xOTAzMjcw
+NjIzNDBaFw0zOTAzMjIwNjIzNDBaMIG7MQswCQYDVQQGEwJVUzELMAkGA1UECAwC
+Q0ExFjAUBgNVBAcMDVNhbiBGcmFuY2lzY28xGDAWBgNVBAoMD0V4YW1wbGUgQ29t
+cGFueTEuMCwGA1UECwwlRXhhbXBsZSBDb21wYW55IENlcnRpZmljYXRlIEF1dGhv
+cml0eTEbMBkGA1UEAwwSRXhhbXBsZSBDb21wYW55IENBMSAwHgYJKoZIhvcNAQkB
+FhFhbGljZUBleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAKhAtiyuvE09abRB1qPBnnMkzU7mRX3xcbOPT/NzfDTkbuTVbcJ98Ei3TRv1
+fmS5Ds1t2fcc493Cx1BTPmfdZSWhvONa9PDZ84wmtkaoU0Utzzdm+62zb/0/I0wh
+MgGaC25D8IRZ5yp5eTtX/yasOVaij9UjphAoHa4eD1GGzpc/LNI9hrV15BmdfcS2
+3FbtlUjFdIjsR41bTVkEb5nwBSrixV5MAcV6Y6I7mSykSTrytY6DcJs/k9yrzOM9
+p6x3v9Npyzny1vUxHWJmsSPwlfxCigcFU7I1ixybWuJB6opPu59h46r4VOVedhcj
+chSa9UcSLIKfmEhrQnw3YIUhudkCAwEAAaNjMGEwHQYDVR0OBBYEFE7KwQ4mMV6A
+oFSttAbzi7rsIMY2MB8GA1UdIwQYMBaAFE7KwQ4mMV6AoFSttAbzi7rsIMY2MA8G
+A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4IB
+AQCBmOcwt/AqQjCAFRdqLFsWdGsDC2iQE4lJhsv6oypBsNNxrYV962JrrgkZThPv
+e+OkBmPrN2izT7UX5Yxbi8qmCe/eaY239GCIgRQs6wehMqlGPx5cZeruwLHDjcsv
+4/KmyDJ9u1lx83OsORxcAr4W+HEIFtLEueQkGbJTMZSKMKkbSa4Ik2bji6ctZBkO
+qWtD5s4C0P29Z8CJL1jRrYNjFg5alGSzoYi26c1o9Oz35pNiurxySE+iDHjkj1vq
+d9+F+869tkXsbuGucdv7oKGZrfdTWKp+LiRQBJzjA9nrZuUqMSMsmSXpXPHV3BdI
+4k1AgvwY9/u+RlmeGW2qRTZJ
+-----END CERTIFICATE-----
diff --git a/test/recipes/25-test_eai_data/utf8_leaf.pem b/test/recipes/25-test_eai_data/utf8_leaf.pem
new file mode 100644 (file)
index 0000000..61d5965
--- /dev/null
@@ -0,0 +1,28 @@
+-----BEGIN CERTIFICATE-----
+MIIEzjCCA7agAwIBAgIUCf16eBeNMQe+sxEnCZnFEuEONAwwDQYJKoZIhvcNAQEL
+BQAwgb0xCzAJBgNVBAYTAlVTMQswCQYDVQQIDAJDQTEYMBYGA1UECgwPRXhhbXBs
+ZSBDb21wYW55MTswOQYDVQQLDDJFeGFtcGxlIENvbXBhbnkgSW50ZXJtZWRpYXRl
+IENlcnRpZmljYXRlIEF1dGhvcml0eTEoMCYGA1UEAwwfRXhhbXBsZSBDb21wYW55
+IEludGVybWVkaWF0ZSBDQTEgMB4GCSqGSIb3DQEJARYRYWxpY2VAZXhhbXBsZS5j
+b20wHhcNMTkwNjA4MTA1MzUzWhcNMjAwNjE3MTA1MzUzWjCBhzELMAkGA1UEBhMC
+VVMxCzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMRgwFgYDVQQK
+DA9FeGFtcGxlIENvbXBhbnkxHTAbBgNVBAsMFEV4YW1wbGUgQ29tcGFueSBVbml0
+MRowGAYDVQQDDBFCb2IgLSB1dGY4IERvbWFpbjCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAN+mN5vwX9iU7k1iH7n5Rx1oogbdyk5Gthl11RimuxufyJxS
+2Tg5c6SW8wLU/CFb/wpzC4XSlSxD9BlSaIla/a6aima+XTk689tNV8TicT0l7MVs
+1qA8+sC6CxsAL/UrrmI+5k7hkRlXvOMfFt1CTx8/MBlR9GomzKKdKdzavc/g68kF
+99EmTxkMm/HyRPc85hJxKNOtI1U4dPeZP7ZL7PTS/CopZ22uhXJSvtPILT+hxt8A
+qXLVOaQP1Fk0ncBKUbRlWuL9r9O6CUSzRYu1mtqfgi4qTM2dZxwMguR7SWRdn4eY
+LV4pjd9i3y0A36eR1MTWWIkk22HhKmZgcsqiqy0CAwEAAaOB+TCB9jAJBgNVHRME
+AjAAMBEGCWCGSAGG+EIBAQQEAwIFoDAzBglghkgBhvhCAQ0EJhYkT3BlblNTTCBH
+ZW5lcmF0ZWQgQ2xpZW50IENlcnRpZmljYXRlMB0GA1UdDgQWBBTCGcnEt0A+oJcD
+1GbkcwiWGG8f9DAfBgNVHSMEGDAWgBQMP96otp2R49sZrHFHdz8Tfv5cczAOBgNV
+HQ8BAf8EBAMCBeAwHQYDVR0lBBYwFAYIKwYBBQUHAwIGCCsGAQUFBwMEMDIGA1Ud
+EQQrMCmgJwYIKwYBBQUHCAmgGwwZ5Yy755SfQOWkp+Wtpi5leGFtcGxlLmNvbTAN
+BgkqhkiG9w0BAQsFAAOCAQEAJMye89+KKYE0Dn2fSUCA3JcoRqWGi5rJkBKzGLQE
+sXmXJ/ECjWXugIz69vkJhh5L4cvRv/Orsq40aAsEhzQHVwFZvjgaDW3EHL10FeY9
+fiZgCThMcktaxWnc9xrUE2GUrEt9+QBkaVozNQgsnGDGPh499Tupzwp7YArHHdUP
+Z1y7jCR4Wlhl3RKP/VRYT0MZGuOKwyVsV4D6+4dQ/CigCqvD0eruI6owREvfH8Lc
+sIwyPtO87EhMWOKD0EkU9bH97D0UZyZlhEg0uq1VaWOHztsnb63Go7u5m1QWlII6
+jAEfnqwuMqNAkRkTT2pfNCq+2+GUlBZDRtuiTljc6QQegg==
+-----END CERTIFICATE-----