add ed25519 to end-to-end matrix
diff --git a/t/assets/ed25519/cert.pem b/t/assets/ed25519/cert.pem
new file mode 100644
index 0000000..51bd991
--- /dev/null
+++ b/t/assets/ed25519/cert.pem
@@ -0,0 +1,57 @@
+Certificate:
+    Data:
+        Version: 3 (0x2)
+        Serial Number: 2 (0x2)
+        Signature Algorithm: sha256WithRSAEncryption
+        Issuer: CN=picotls test ca
+        Validity
+            Not Before: Mar 21 23:16:56 2021 GMT
+            Not After : Mar 19 23:16:56 2031 GMT
+        Subject: CN=ed25519.test.example.com
+        Subject Public Key Info:
+            Public Key Algorithm: ED25519
+                ED25519 Public-Key:
+                pub:
+                    ca:06:f0:64:9b:72:b2:4c:fb:c1:75:52:53:ae:d9:
+                    91:e5:5e:ff:3a:d9:49:4e:66:66:3e:0f:7b:d9:c2:
+                    ae:11
+        X509v3 extensions:
+            X509v3 Basic Constraints: 
+                CA:FALSE
+            Netscape Comment: 
+                OpenSSL Generated Certificate
+            X509v3 Subject Key Identifier: 
+                3D:85:D9:DB:34:7D:0E:92:6D:65:07:56:2B:9C:A0:89:7F:91:8F:01
+            X509v3 Authority Key Identifier: 
+                keyid:BF:79:CA:97:B2:60:78:20:96:AA:46:57:9C:DF:A7:B2:23:F5:25:63
+
+    Signature Algorithm: sha256WithRSAEncryption
+         4d:eb:fb:66:26:b7:64:3c:3c:46:43:e9:1b:1a:e8:7a:2a:56:
+         93:17:3c:b0:bd:fc:9a:02:ba:4e:a0:d5:91:1e:e0:e0:cf:23:
+         98:38:9e:d7:09:a0:a1:5b:81:9e:56:4f:b3:44:bc:42:d5:95:
+         6b:6e:7f:64:2f:92:c3:3f:da:0a:76:74:e7:74:f3:ac:8f:86:
+         66:9f:77:ab:f7:33:e5:46:06:ae:bc:60:1d:e4:3b:87:93:59:
+         f7:7d:d2:0a:87:0f:f3:ba:c0:77:30:ae:62:41:62:2c:99:2c:
+         7d:8c:51:31:fb:c4:9f:08:c7:b9:68:5a:b3:64:ed:49:1d:16:
+         91:ff:2a:ca:2f:1c:61:69:b8:6a:8c:fe:d7:69:de:83:cf:db:
+         8c:42:93:8f:11:d7:4e:8b:dd:e2:ba:7e:7c:f7:24:c8:e3:47:
+         77:52:b0:7c:d5:72:56:f4:b9:75:4a:70:ac:f2:a6:25:f7:d0:
+         fd:29:ca:bc:39:68:c5:8f:1a:ca:88:41:47:c3:4c:fc:a1:66:
+         a0:f8:cf:1b:82:a9:e3:bd:86:4e:66:59:f8:32:79:bd:98:e2:
+         6d:b0:68:ed:b9:0f:b0:bd:43:2d:dc:05:a1:27:88:88:d1:e1:
+         1e:6d:7c:43:8e:76:45:32:88:a9:5d:af:cb:dc:1f:a1:fc:39:
+         e7:1f:61:8d
+-----BEGIN CERTIFICATE-----
+MIICOTCCASGgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAaMRgwFgYDVQQDEw9waWNv
+dGxzIHRlc3QgY2EwHhcNMjEwMzIxMjMxNjU2WhcNMzEwMzE5MjMxNjU2WjAjMSEw
+HwYDVQQDDBhlZDI1NTE5LnRlc3QuZXhhbXBsZS5jb20wKjAFBgMrZXADIQDKBvBk
+m3KyTPvBdVJTrtmR5V7/OtlJTmZmPg972cKuEaN7MHkwCQYDVR0TBAIwADAsBglg
+hkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0O
+BBYEFD2F2ds0fQ6SbWUHViucoIl/kY8BMB8GA1UdIwQYMBaAFL95ypeyYHgglqpG
+V5zfp7Ij9SVjMA0GCSqGSIb3DQEBCwUAA4IBAQBN6/tmJrdkPDxGQ+kbGuh6KlaT
+FzywvfyaArpOoNWRHuDgzyOYOJ7XCaChW4GeVk+zRLxC1ZVrbn9kL5LDP9oKdnTn
+dPOsj4Zmn3er9zPlRgauvGAd5DuHk1n3fdIKhw/zusB3MK5iQWIsmSx9jFEx+8Sf
+CMe5aFqzZO1JHRaR/yrKLxxhabhqjP7Xad6Dz9uMQpOPEddOi93iun589yTI40d3
+UrB81XJW9Ll1SnCs8qYl99D9Kcq8OWjFjxrKiEFHw0z8oWag+M8bgqnjvYZOZln4
+Mnm9mOJtsGjtuQ+wvUMt3AWhJ4iI0eEebXxDjnZFMoipXa/L3B+h/DnnH2GN
+-----END CERTIFICATE-----
diff --git a/t/assets/ed25519/key.pem b/t/assets/ed25519/key.pem
new file mode 100644
index 0000000..6461749
--- /dev/null
+++ b/t/assets/ed25519/key.pem
@@ -0,0 +1,3 @@
+-----BEGIN PRIVATE KEY-----
+MC4CAQAwBQYDK2VwBCIEIFh3irfeqAxMuC/lkrh12Q5Qz/h5JfkvSDhgncoYF1t8
+-----END PRIVATE KEY-----
diff --git a/t/assets/ed25519/pub.pem b/t/assets/ed25519/pub.pem
new file mode 100644
index 0000000..04b8564
--- /dev/null
+++ b/t/assets/ed25519/pub.pem
@@ -0,0 +1,3 @@
+-----BEGIN PUBLIC KEY-----
+MCowBQYDK2VwAyEAygbwZJtyskz7wXVSU67ZkeVe/zrZSU5mZj4Pe9nCrhE=
+-----END PUBLIC KEY-----
diff --git a/t/e2e.t b/t/e2e.t
index d72fc24..4430a6b 100755
--- a/t/e2e.t
+++ b/t/e2e.t
@@ -72,7 +72,7 @@
 
 # This test acts as an end-to-end testing of the certificate verifier of the OpenSSL backend.
 subtest "raw-public-keys" => sub {
-    for my $key_type (qw(rsa secp256r1 secp384r1 secp521r1)) {
+    for my $key_type (qw(rsa secp256r1 secp384r1 secp521r1 ed25519)) {
         subtest $key_type => sub {
             my $guard = spawn_server($key_type, qw(-r - -i t/assets/hello.txt));
             my $resp = `$cli -v -r t/assets/$key_type/pub.pem 127.0.0.1 $port 2> /dev/null`;