@@ -62,27 +62,44 @@ module Encoding
6262 [ :public_key , :string ]
6363 ]
6464
65+ # Fields in an SK-ECDSA public key
66+ SKECDSA_KEY_FIELDS = [
67+ [ :curve , :string ] ,
68+ [ :public_key , :string ] ,
69+ [ :application , :string ]
70+ ]
71+
6572 # Fields in a ED25519 public key
6673 ED25519_KEY_FIELDS = [
6774 [ :pk , :string ]
6875 ]
6976
77+ # Fields in a SK-ED25519 public key
78+ SKED25519_KEY_FIELDS = [
79+ [ :pk , :string ] ,
80+ [ :application , :string ]
81+ ]
82+
7083 PUBLIC_KEY_ALGO_BY_CERT_ALGO = {
71- Certificate ::ALGO_RSA => PublicKey ::ALGO_RSA ,
72- Certificate ::ALGO_DSA => PublicKey ::ALGO_DSA ,
73- Certificate ::ALGO_ECDSA256 => PublicKey ::ALGO_ECDSA256 ,
74- Certificate ::ALGO_ECDSA384 => PublicKey ::ALGO_ECDSA384 ,
75- Certificate ::ALGO_ECDSA521 => PublicKey ::ALGO_ECDSA521 ,
76- Certificate ::ALGO_ED25519 => PublicKey ::ALGO_ED25519 ,
84+ Certificate ::ALGO_RSA => PublicKey ::ALGO_RSA ,
85+ Certificate ::ALGO_DSA => PublicKey ::ALGO_DSA ,
86+ Certificate ::ALGO_ECDSA256 => PublicKey ::ALGO_ECDSA256 ,
87+ Certificate ::ALGO_ECDSA384 => PublicKey ::ALGO_ECDSA384 ,
88+ Certificate ::ALGO_ECDSA521 => PublicKey ::ALGO_ECDSA521 ,
89+ Certificate ::ALGO_ED25519 => PublicKey ::ALGO_ED25519 ,
90+ Certificate ::ALGO_SKECDSA256 => PublicKey ::ALGO_SKECDSA256 ,
91+ Certificate ::ALGO_SKED25519 => PublicKey ::ALGO_SKED25519 ,
7792 }
7893
7994 CERT_ALGO_BY_PUBLIC_KEY_ALGO = {
80- PublicKey ::ALGO_RSA => Certificate ::ALGO_RSA ,
81- PublicKey ::ALGO_DSA => Certificate ::ALGO_DSA ,
82- PublicKey ::ALGO_ECDSA256 => Certificate ::ALGO_ECDSA256 ,
83- PublicKey ::ALGO_ECDSA384 => Certificate ::ALGO_ECDSA384 ,
84- PublicKey ::ALGO_ECDSA521 => Certificate ::ALGO_ECDSA521 ,
85- PublicKey ::ALGO_ED25519 => Certificate ::ALGO_ED25519 ,
95+ PublicKey ::ALGO_RSA => Certificate ::ALGO_RSA ,
96+ PublicKey ::ALGO_DSA => Certificate ::ALGO_DSA ,
97+ PublicKey ::ALGO_ECDSA256 => Certificate ::ALGO_ECDSA256 ,
98+ PublicKey ::ALGO_ECDSA384 => Certificate ::ALGO_ECDSA384 ,
99+ PublicKey ::ALGO_ECDSA521 => Certificate ::ALGO_ECDSA521 ,
100+ PublicKey ::ALGO_ED25519 => Certificate ::ALGO_ED25519 ,
101+ PublicKey ::ALGO_SKECDSA256 => Certificate ::ALGO_SKECDSA256 ,
102+ PublicKey ::ALGO_SKED25519 => Certificate ::ALGO_SKED25519 ,
86103 }
87104
88105 KEY_FIELDS_BY_PUBLIC_KEY_ALGO = {
@@ -92,6 +109,8 @@ module Encoding
92109 PublicKey ::ALGO_ECDSA384 => ECDSA_KEY_FIELDS ,
93110 PublicKey ::ALGO_ECDSA521 => ECDSA_KEY_FIELDS ,
94111 PublicKey ::ALGO_ED25519 => ED25519_KEY_FIELDS ,
112+ PublicKey ::ALGO_SKED25519 => SKED25519_KEY_FIELDS ,
113+ PublicKey ::ALGO_SKECDSA256 => SKECDSA_KEY_FIELDS ,
95114 }
96115
97116 KEY_FIELDS_BY_PRIVATE_KEY_ALGO = {
0 commit comments