Skip to content

Commit a7c5210

Browse files
committed
Add new codecs
1 parent 235577f commit a7c5210

11 files changed

Lines changed: 95 additions & 11 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<modelVersion>4.0.0</modelVersion>
66
<groupId>com.apicatalog</groupId>
77
<artifactId>copper-multicodec</artifactId>
8-
<version>2.3.0</version>
8+
<version>2.4.0</version>
99
<packaging>jar</packaging>
1010
<url>https://github.com/filip26/copper-multicodec</url>
1111
<scm>

src/main/java/com/apicatalog/multicodec/codec/CidCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class CidCodec {
1111

1212
/** Cid: cidv1, CIDv1, status = permanent, code = 0x1 */

src/main/java/com/apicatalog/multicodec/codec/HashCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class HashCodec {
1111

1212
/** Hash: crc32, CRC-32 non-cryptographic hash algorithm (IEEE 802.3), status = draft, code = 0x132 */

src/main/java/com/apicatalog/multicodec/codec/KeyCodec.java

Lines changed: 85 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class KeyCodec {
1111

1212
/** Key: aes-128, 128-bit AES symmetric key, status = draft, code = 0xa0 */
@@ -60,9 +60,15 @@ public class KeyCodec {
6060
/** Key: ed25519-pub, Ed25519 public key, status = draft, code = 0xed */
6161
public static final Multicodec ED25519_PUBLIC_KEY = Multicodec.of("ed25519-pub", Tag.Key, 0xed, Multicodec.Status.Draft);
6262

63+
/** Key: ed448-priv, Ed448 private key, status = draft, code = 0x1311 */
64+
public static final Multicodec ED448_PRIVATE_KEY = Multicodec.of("ed448-priv", Tag.Key, 0x1311, Multicodec.Status.Draft);
65+
6366
/** Key: ed448-pub, Ed448 public Key, status = draft, code = 0x1203 */
6467
public static final Multicodec ED448_PUBLIC_KEY = Multicodec.of("ed448-pub", Tag.Key, 0x1203, Multicodec.Status.Draft);
6568

69+
/** Key: jwk_jcs-priv, JSON object containing only the required members of a JWK (RFC 7518 and RFC 7517) representing the private key. Serialisation based on JCS (RFC 8785), status = draft, code = 0x1316 */
70+
public static final Multicodec JWK_JCS_PRIVATE_KEY = Multicodec.of("jwk_jcs-priv", Tag.Key, 0x1316, Multicodec.Status.Draft);
71+
6672
/** Key: jwk_jcs-pub, JSON object containing only the required members of a JWK (RFC 7518 and RFC 7517) representing the public key. Serialisation based on JCS (RFC 8785), status = draft, code = 0xeb51 */
6773
public static final Multicodec JWK_JCS_PUBLIC_KEY = Multicodec.of("jwk_jcs-pub", Tag.Key, 0xeb51, Multicodec.Status.Draft);
6874

@@ -93,12 +99,30 @@ public class KeyCodec {
9399
/** Key: lamport-sha3-512-pub, Lamport public key based on SHA3-512, status = draft, code = 0x1a14 */
94100
public static final Multicodec LAMPORT_SHA3_512_PUBLIC_KEY = Multicodec.of("lamport-sha3-512-pub", Tag.Key, 0x1a14, Multicodec.Status.Draft);
95101

102+
/** Key: mldsa-44-pub, ML-DSA 44 public key; as specified by FIPS 204, status = draft, code = 0x1210 */
103+
public static final Multicodec MLDSA_44_PUBLIC_KEY = Multicodec.of("mldsa-44-pub", Tag.Key, 0x1210, Multicodec.Status.Draft);
104+
105+
/** Key: mldsa-65-pub, ML-DSA 65 public key; as specified by FIPS 204, status = draft, code = 0x1211 */
106+
public static final Multicodec MLDSA_65_PUBLIC_KEY = Multicodec.of("mldsa-65-pub", Tag.Key, 0x1211, Multicodec.Status.Draft);
107+
108+
/** Key: mldsa-87-pub, ML-DSA 87 public key; as specified by FIPS 204, status = draft, code = 0x1212 */
109+
public static final Multicodec MLDSA_87_PUBLIC_KEY = Multicodec.of("mldsa-87-pub", Tag.Key, 0x1212, Multicodec.Status.Draft);
110+
111+
/** Key: mlkem-1024-priv, ML-KEM 1024 public key; as specified by FIPS 203, status = draft, code = 0x1315 */
112+
public static final Multicodec MLKEM_1024_PRIVATE_KEY = Multicodec.of("mlkem-1024-priv", Tag.Key, 0x1315, Multicodec.Status.Draft);
113+
96114
/** Key: mlkem-1024-pub, ML-KEM 1024 public key; as specified by FIPS 203, status = draft, code = 0x120d */
97115
public static final Multicodec MLKEM_1024_PUBLIC_KEY = Multicodec.of("mlkem-1024-pub", Tag.Key, 0x120d, Multicodec.Status.Draft);
98116

117+
/** Key: mlkem-512-priv, ML-KEM 512 private key; as specified by FIPS 203, status = draft, code = 0x1313 */
118+
public static final Multicodec MLKEM_512_PRIVATE_KEY = Multicodec.of("mlkem-512-priv", Tag.Key, 0x1313, Multicodec.Status.Draft);
119+
99120
/** Key: mlkem-512-pub, ML-KEM 512 public key; as specified by FIPS 203, status = draft, code = 0x120b */
100121
public static final Multicodec MLKEM_512_PUBLIC_KEY = Multicodec.of("mlkem-512-pub", Tag.Key, 0x120b, Multicodec.Status.Draft);
101122

123+
/** Key: mlkem-768-priv, ML-KEM 768 public key; as specified by FIPS 203, status = draft, code = 0x1314 */
124+
public static final Multicodec MLKEM_768_PRIVATE_KEY = Multicodec.of("mlkem-768-priv", Tag.Key, 0x1314, Multicodec.Status.Draft);
125+
102126
/** Key: mlkem-768-pub, ML-KEM 768 public key; as specified by FIPS 203, status = draft, code = 0x120c */
103127
public static final Multicodec MLKEM_768_PUBLIC_KEY = Multicodec.of("mlkem-768-pub", Tag.Key, 0x120c, Multicodec.Status.Draft);
104128

@@ -132,6 +156,42 @@ public class KeyCodec {
132156
/** Key: secp256k1-pub, Secp256k1 public key (compressed), status = draft, code = 0xe7 */
133157
public static final Multicodec SECP256K1_PUBLIC_KEY = Multicodec.of("secp256k1-pub", Tag.Key, 0xe7, Multicodec.Status.Draft);
134158

159+
/** Key: slhdsa-sha2-128f-pub, SLH-DSA-SHA2-128f public key; as specified by FIPS 205, status = draft, code = 0x1222 */
160+
public static final Multicodec SLHDSA_SHA2_128F_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-128f-pub", Tag.Key, 0x1222, Multicodec.Status.Draft);
161+
162+
/** Key: slhdsa-sha2-128s-pub, SLH-DSA-SHA2-128s public key; as specified by FIPS 205, status = draft, code = 0x1220 */
163+
public static final Multicodec SLHDSA_SHA2_128S_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-128s-pub", Tag.Key, 0x1220, Multicodec.Status.Draft);
164+
165+
/** Key: slhdsa-sha2-192f-pub, SLH-DSA-SHA2-192f public key; as specified by FIPS 205, status = draft, code = 0x1226 */
166+
public static final Multicodec SLHDSA_SHA2_192F_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-192f-pub", Tag.Key, 0x1226, Multicodec.Status.Draft);
167+
168+
/** Key: slhdsa-sha2-192s-pub, SLH-DSA-SHA2-192s public key; as specified by FIPS 205, status = draft, code = 0x1224 */
169+
public static final Multicodec SLHDSA_SHA2_192S_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-192s-pub", Tag.Key, 0x1224, Multicodec.Status.Draft);
170+
171+
/** Key: slhdsa-sha2-256f-pub, SLH-DSA-SHA2-256f public key; as specified by FIPS 205, status = draft, code = 0x122a */
172+
public static final Multicodec SLHDSA_SHA2_256F_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-256f-pub", Tag.Key, 0x122a, Multicodec.Status.Draft);
173+
174+
/** Key: slhdsa-sha2-256s-pub, SLH-DSA-SHA2-256s public key; as specified by FIPS 205, status = draft, code = 0x1228 */
175+
public static final Multicodec SLHDSA_SHA2_256S_PUBLIC_KEY = Multicodec.of("slhdsa-sha2-256s-pub", Tag.Key, 0x1228, Multicodec.Status.Draft);
176+
177+
/** Key: slhdsa-shake-128f-pub, SLH-DSA-SHAKE-128f public key; as specified by FIPS 205, status = draft, code = 0x1223 */
178+
public static final Multicodec SLHDSA_SHAKE_128F_PUBLIC_KEY = Multicodec.of("slhdsa-shake-128f-pub", Tag.Key, 0x1223, Multicodec.Status.Draft);
179+
180+
/** Key: slhdsa-shake-128s-pub, SLH-DSA-SHAKE-128s public key; as specified by FIPS 205, status = draft, code = 0x1221 */
181+
public static final Multicodec SLHDSA_SHAKE_128S_PUBLIC_KEY = Multicodec.of("slhdsa-shake-128s-pub", Tag.Key, 0x1221, Multicodec.Status.Draft);
182+
183+
/** Key: slhdsa-shake-192f-pub, SLH-DSA-SHAKE-192f public key; as specified by FIPS 205, status = draft, code = 0x1227 */
184+
public static final Multicodec SLHDSA_SHAKE_192F_PUBLIC_KEY = Multicodec.of("slhdsa-shake-192f-pub", Tag.Key, 0x1227, Multicodec.Status.Draft);
185+
186+
/** Key: slhdsa-shake-192s-pub, SLH-DSA-SHAKE-192s public key; as specified by FIPS 205, status = draft, code = 0x1225 */
187+
public static final Multicodec SLHDSA_SHAKE_192S_PUBLIC_KEY = Multicodec.of("slhdsa-shake-192s-pub", Tag.Key, 0x1225, Multicodec.Status.Draft);
188+
189+
/** Key: slhdsa-shake-256f-pub, SLH-DSA-SHAKE-256f public key; as specified by FIPS 205, status = draft, code = 0x122b */
190+
public static final Multicodec SLHDSA_SHAKE_256F_PUBLIC_KEY = Multicodec.of("slhdsa-shake-256f-pub", Tag.Key, 0x122b, Multicodec.Status.Draft);
191+
192+
/** Key: slhdsa-shake-256s-pub, SLH-DSA-SHAKE-256s public key; as specified by FIPS 205, status = draft, code = 0x1229 */
193+
public static final Multicodec SLHDSA_SHAKE_256S_PUBLIC_KEY = Multicodec.of("slhdsa-shake-256s-pub", Tag.Key, 0x1229, Multicodec.Status.Draft);
194+
135195
/** Key: sm2-priv, SM2 private key, status = draft, code = 0x1310 */
136196
public static final Multicodec SM2_PRIVATE_KEY = Multicodec.of("sm2-priv", Tag.Key, 0x1310, Multicodec.Status.Draft);
137197

@@ -150,6 +210,9 @@ public class KeyCodec {
150210
/** Key: x25519-pub, Curve25519 public key, status = draft, code = 0xec */
151211
public static final Multicodec X25519_PUBLIC_KEY = Multicodec.of("x25519-pub", Tag.Key, 0xec, Multicodec.Status.Draft);
152212

213+
/** Key: x448-priv, X448 private key, status = draft, code = 0x1312 */
214+
public static final Multicodec X448_PRIVATE_KEY = Multicodec.of("x448-priv", Tag.Key, 0x1312, Multicodec.Status.Draft);
215+
153216
/** Key: x448-pub, X448 public Key, status = draft, code = 0x1204 */
154217
public static final Multicodec X448_PUBLIC_KEY = Multicodec.of("x448-pub", Tag.Key, 0x1204, Multicodec.Status.Draft);
155218

@@ -173,7 +236,9 @@ public class KeyCodec {
173236
ALL.put(CHACHA_256_KEY.code(), CHACHA_256_KEY);
174237
ALL.put(ED25519_PRIVATE_KEY.code(), ED25519_PRIVATE_KEY);
175238
ALL.put(ED25519_PUBLIC_KEY.code(), ED25519_PUBLIC_KEY);
239+
ALL.put(ED448_PRIVATE_KEY.code(), ED448_PRIVATE_KEY);
176240
ALL.put(ED448_PUBLIC_KEY.code(), ED448_PUBLIC_KEY);
241+
ALL.put(JWK_JCS_PRIVATE_KEY.code(), JWK_JCS_PRIVATE_KEY);
177242
ALL.put(JWK_JCS_PUBLIC_KEY.code(), JWK_JCS_PUBLIC_KEY);
178243
ALL.put(LAMPORT_SHA3_256_PRIVATE_KEY.code(), LAMPORT_SHA3_256_PRIVATE_KEY);
179244
ALL.put(LAMPORT_SHA3_256_PRIVATE_SHARE_KEY.code(), LAMPORT_SHA3_256_PRIVATE_SHARE_KEY);
@@ -184,8 +249,14 @@ public class KeyCodec {
184249
ALL.put(LAMPORT_SHA3_512_PRIVATE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_KEY);
185250
ALL.put(LAMPORT_SHA3_512_PRIVATE_SHARE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_SHARE_KEY);
186251
ALL.put(LAMPORT_SHA3_512_PUBLIC_KEY.code(), LAMPORT_SHA3_512_PUBLIC_KEY);
252+
ALL.put(MLDSA_44_PUBLIC_KEY.code(), MLDSA_44_PUBLIC_KEY);
253+
ALL.put(MLDSA_65_PUBLIC_KEY.code(), MLDSA_65_PUBLIC_KEY);
254+
ALL.put(MLDSA_87_PUBLIC_KEY.code(), MLDSA_87_PUBLIC_KEY);
255+
ALL.put(MLKEM_1024_PRIVATE_KEY.code(), MLKEM_1024_PRIVATE_KEY);
187256
ALL.put(MLKEM_1024_PUBLIC_KEY.code(), MLKEM_1024_PUBLIC_KEY);
257+
ALL.put(MLKEM_512_PRIVATE_KEY.code(), MLKEM_512_PRIVATE_KEY);
188258
ALL.put(MLKEM_512_PUBLIC_KEY.code(), MLKEM_512_PUBLIC_KEY);
259+
ALL.put(MLKEM_768_PRIVATE_KEY.code(), MLKEM_768_PRIVATE_KEY);
189260
ALL.put(MLKEM_768_PUBLIC_KEY.code(), MLKEM_768_PUBLIC_KEY);
190261
ALL.put(P256_PRIVATE_KEY.code(), P256_PRIVATE_KEY);
191262
ALL.put(P256_PUBLIC_KEY.code(), P256_PUBLIC_KEY);
@@ -197,12 +268,25 @@ public class KeyCodec {
197268
ALL.put(RSA_PUBLIC_KEY.code(), RSA_PUBLIC_KEY);
198269
ALL.put(SECP256K1_PRIVATE_KEY.code(), SECP256K1_PRIVATE_KEY);
199270
ALL.put(SECP256K1_PUBLIC_KEY.code(), SECP256K1_PUBLIC_KEY);
271+
ALL.put(SLHDSA_SHA2_128F_PUBLIC_KEY.code(), SLHDSA_SHA2_128F_PUBLIC_KEY);
272+
ALL.put(SLHDSA_SHA2_128S_PUBLIC_KEY.code(), SLHDSA_SHA2_128S_PUBLIC_KEY);
273+
ALL.put(SLHDSA_SHA2_192F_PUBLIC_KEY.code(), SLHDSA_SHA2_192F_PUBLIC_KEY);
274+
ALL.put(SLHDSA_SHA2_192S_PUBLIC_KEY.code(), SLHDSA_SHA2_192S_PUBLIC_KEY);
275+
ALL.put(SLHDSA_SHA2_256F_PUBLIC_KEY.code(), SLHDSA_SHA2_256F_PUBLIC_KEY);
276+
ALL.put(SLHDSA_SHA2_256S_PUBLIC_KEY.code(), SLHDSA_SHA2_256S_PUBLIC_KEY);
277+
ALL.put(SLHDSA_SHAKE_128F_PUBLIC_KEY.code(), SLHDSA_SHAKE_128F_PUBLIC_KEY);
278+
ALL.put(SLHDSA_SHAKE_128S_PUBLIC_KEY.code(), SLHDSA_SHAKE_128S_PUBLIC_KEY);
279+
ALL.put(SLHDSA_SHAKE_192F_PUBLIC_KEY.code(), SLHDSA_SHAKE_192F_PUBLIC_KEY);
280+
ALL.put(SLHDSA_SHAKE_192S_PUBLIC_KEY.code(), SLHDSA_SHAKE_192S_PUBLIC_KEY);
281+
ALL.put(SLHDSA_SHAKE_256F_PUBLIC_KEY.code(), SLHDSA_SHAKE_256F_PUBLIC_KEY);
282+
ALL.put(SLHDSA_SHAKE_256S_PUBLIC_KEY.code(), SLHDSA_SHAKE_256S_PUBLIC_KEY);
200283
ALL.put(SM2_PRIVATE_KEY.code(), SM2_PRIVATE_KEY);
201284
ALL.put(SM2_PUBLIC_KEY.code(), SM2_PUBLIC_KEY);
202285
ALL.put(SR25519_PRIVATE_KEY.code(), SR25519_PRIVATE_KEY);
203286
ALL.put(SR25519_PUBLIC_KEY.code(), SR25519_PUBLIC_KEY);
204287
ALL.put(X25519_PRIVATE_KEY.code(), X25519_PRIVATE_KEY);
205288
ALL.put(X25519_PUBLIC_KEY.code(), X25519_PUBLIC_KEY);
289+
ALL.put(X448_PRIVATE_KEY.code(), X448_PRIVATE_KEY);
206290
ALL.put(X448_PUBLIC_KEY.code(), X448_PUBLIC_KEY);
207291
}
208292

src/main/java/com/apicatalog/multicodec/codec/MultiaddrCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class MultiaddrCodec {
1111

1212
/** Multiaddr: certhash, TLS certificate's fingerprint as a multihash, status = draft, code = 0x1d2 */

src/main/java/com/apicatalog/multicodec/codec/MultiformatCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class MultiformatCodec {
1111

1212
/** Multiformat: caip-50, CAIP-50 multi-chain account ID, status = draft, code = 0xca */

src/main/java/com/apicatalog/multicodec/codec/MultihashCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec;
77
import com.apicatalog.multihash.Multihash;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class MultihashCodec {
1111

1212
/** Multihash: bcrypt-pbkdf, Bcrypt-PBKDF key derivation function, status = draft, code = 0xd00d */

src/main/java/com/apicatalog/multicodec/codec/NamespaceCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class NamespaceCodec {
1111

1212
/** Namespace: arweave-ns, Arweave Namespace, status = draft, code = 0xb29910 */

src/main/java/com/apicatalog/multicodec/codec/SerializationCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class SerializationCodec {
1111

1212
/** Serialization: bencode, bencode, status = draft, code = 0x63 */

src/main/java/com/apicatalog/multicodec/codec/TransportCodec.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import com.apicatalog.multicodec.Multicodec.Tag;
77
import com.apicatalog.multicodec.Multicodec;
88

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
9+
/** Multicodec Registry - generated: Sat Feb 07 01:16:25 CET 2026 */
1010
public class TransportCodec {
1111

1212
/** Transport: transport-bitswap, Bitswap datatransfer, status = draft, code = 0x900 */

0 commit comments

Comments
 (0)