Skip to content

Commit 6567dc5

Browse files
authored
Merge pull request #129 from filip26/feat/240
v2.4.0
2 parents 4f4733c + 46b622e commit 6567dc5

15 files changed

Lines changed: 165 additions & 18 deletions

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ encoding and decoding of self-describing data formats.
2121
[![Java 8 CI](https://github.com/filip26/copper-multicodec/actions/workflows/java8-build.yml/badge.svg?branch=main)](https://github.com/filip26/copper-multicodec/actions/workflows/java8-build.yml)
2222
[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=filip26_copper-multicodec&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=filip26_copper-multicodec)
2323
[![javadoc](https://javadoc.io/badge2/com.apicatalog/copper-multicodec/javadoc.svg)](https://javadoc.io/doc/com.apicatalog/copper-multicodec)
24-
[![Maven Central](https://img.shields.io/maven-central/v/com.apicatalog/copper-multicodec.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:com.apicatalog%20AND%20a:copper-multicodec)
24+
[![Maven Central](https://img.shields.io/maven-central/v/com.apicatalog/copper-multicodec.svg?label=Maven%20Central)](https://mvnrepository.com/artifact/com.apicatalog/copper-multicodec)
2525
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
2626

2727
## ✨ Features
@@ -128,7 +128,7 @@ To include Copper Multicodec in your project, add the following dependency to yo
128128
<dependency>
129129
<groupId>com.apicatalog</groupId>
130130
<artifactId>copper-multicodec</artifactId>
131-
<version>2.3.0</version>
131+
<version>2.4.0</version>
132132
</dependency>
133133
```
134134

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/gen/java/com/apicatalog/multicodec/CodecTag.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import java.io.StringWriter;
66
import java.nio.file.Files;
77
import java.nio.file.Paths;
8+
import java.time.Instant;
89
import java.util.Collection;
910
import java.util.Date;
1011
import java.util.stream.Collectors;
@@ -23,6 +24,7 @@ public static void generate(final String tag, final String className, final Clas
2324
writer.println("package com.apicatalog.multicodec.codec;");
2425
writer.println();
2526
writer.println("import java.util.TreeMap;");
27+
writer.println("import java.time.Instant;");
2628
writer.println("import java.util.Map;");
2729
writer.println();
2830
if (Multicodec.class.equals(clazz)) {
@@ -42,6 +44,9 @@ public static void generate(final String tag, final String className, final Clas
4244
writer.println(" {");
4345
writer.println();
4446

47+
writer.println(" public static final Instant UPDATED = Instant.parse(\"" + Instant.now().toString() + "\");");
48+
writer.println();
49+
4550
Collection<CodecDef> defs = stream
4651
.filter(columns -> tag.equals(columns[1].trim()))
4752
.map(CodecDef::from)

src/main/java/com/apicatalog/multicodec/Multicodec.java

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -177,9 +177,34 @@ public byte[] encode(final byte[] value, int index, int length) {
177177
* prefix, {@code false} otherwise
178178
*/
179179
public boolean isEncoded(final byte[] encoded) {
180+
return isEncoded(encoded, 0, encoded.length);
181+
}
182+
183+
/**
184+
* Checks if the given encoded byte array starts with this codec's varint code.
185+
*
186+
* @param encoded the byte array to test
187+
* @param index the starting index (inclusive)
188+
* @return {@code true} if {@code encoded} starts with this codec's varint
189+
* prefix, {@code false} otherwise
190+
*/
191+
public boolean isEncoded(final byte[] encoded, final int index) {
192+
return isEncoded(encoded, index, encoded.length - index);
193+
}
194+
195+
/**
196+
* Checks if the given encoded byte array starts with this codec's varint code.
197+
*
198+
* @param encoded the byte array to test
199+
* @param index the starting index (inclusive)
200+
* @param length the number of bytes to read from {@code index}
201+
* @return {@code true} if {@code encoded} starts with this codec's varint
202+
* prefix, {@code false} otherwise
203+
*/
204+
public boolean isEncoded(final byte[] encoded, final int index, final int length) {
180205
return encoded != null
181-
&& encoded.length >= codeVarint.length
182-
&& IntStream.range(0, codeVarint.length).allMatch(i -> codeVarint[i] == encoded[i]);
206+
&& length >= codeVarint.length
207+
&& IntStream.range(0, codeVarint.length).allMatch(i -> codeVarint[i] == encoded[i + index]);
183208
}
184209

185210
/**
@@ -228,7 +253,8 @@ public byte[] decode(final byte[] encoded, final int index, final int length) {
228253

229254
if (length > (encoded.length - index)) {
230255
throw new IllegalArgumentException(
231-
"The requested decode length (" + length + ") is greater than the available bytes (" + (encoded.length - index) + ").");
256+
"The requested decode length (" + length + ") is greater than the available bytes ("
257+
+ (encoded.length - index) + ").");
232258
}
233259

234260
if (length < (codeVarint.length + 1)) {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.apicatalog.multicodec.codec;
22

33
import java.util.TreeMap;
4+
import java.time.Instant;
45
import java.util.Map;
56

67
import com.apicatalog.multicodec.Multicodec.Tag;
78
import com.apicatalog.multicodec.Multicodec;
89

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
10+
/** Multicodec Registry - generated: Sat Feb 07 19:12:43 CET 2026 */
1011
public class CidCodec {
1112

13+
public static final Instant UPDATED = Instant.parse("2026-02-07T18:12:43.996Z");
14+
1215
/** Cid: cidv1, CIDv1, status = permanent, code = 0x1 */
1316
public static final Multicodec CIDV1 = Multicodec.of("cidv1", Tag.Cid, 0x1, Multicodec.Status.Permanent);
1417

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.apicatalog.multicodec.codec;
22

33
import java.util.TreeMap;
4+
import java.time.Instant;
45
import java.util.Map;
56

67
import com.apicatalog.multicodec.Multicodec.Tag;
78
import com.apicatalog.multicodec.Multicodec;
89

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
10+
/** Multicodec Registry - generated: Sat Feb 07 19:12:43 CET 2026 */
1011
public class HashCodec {
1112

13+
public static final Instant UPDATED = Instant.parse("2026-02-07T18:12:43.991Z");
14+
1215
/** Hash: crc32, CRC-32 non-cryptographic hash algorithm (IEEE 802.3), status = draft, code = 0x132 */
1316
public static final Multicodec CRC32 = Multicodec.of("crc32", Tag.Hash, 0x132, Multicodec.Status.Draft);
1417

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

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.apicatalog.multicodec.codec;
22

33
import java.util.TreeMap;
4+
import java.time.Instant;
45
import java.util.Map;
56

67
import com.apicatalog.multicodec.Multicodec.Tag;
78
import com.apicatalog.multicodec.Multicodec;
89

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
10+
/** Multicodec Registry - generated: Sat Feb 07 19:12:43 CET 2026 */
1011
public class KeyCodec {
1112

13+
public static final Instant UPDATED = Instant.parse("2026-02-07T18:12:43.909Z");
14+
1215
/** Key: aes-128, 128-bit AES symmetric key, status = draft, code = 0xa0 */
1316
public static final Multicodec AES_128_KEY = Multicodec.of("aes-128", Tag.Key, 0xa0, Multicodec.Status.Draft);
1417

@@ -60,9 +63,15 @@ public class KeyCodec {
6063
/** Key: ed25519-pub, Ed25519 public key, status = draft, code = 0xed */
6164
public static final Multicodec ED25519_PUBLIC_KEY = Multicodec.of("ed25519-pub", Tag.Key, 0xed, Multicodec.Status.Draft);
6265

66+
/** Key: ed448-priv, Ed448 private key, status = draft, code = 0x1311 */
67+
public static final Multicodec ED448_PRIVATE_KEY = Multicodec.of("ed448-priv", Tag.Key, 0x1311, Multicodec.Status.Draft);
68+
6369
/** Key: ed448-pub, Ed448 public Key, status = draft, code = 0x1203 */
6470
public static final Multicodec ED448_PUBLIC_KEY = Multicodec.of("ed448-pub", Tag.Key, 0x1203, Multicodec.Status.Draft);
6571

72+
/** 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 */
73+
public static final Multicodec JWK_JCS_PRIVATE_KEY = Multicodec.of("jwk_jcs-priv", Tag.Key, 0x1316, Multicodec.Status.Draft);
74+
6675
/** 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 */
6776
public static final Multicodec JWK_JCS_PUBLIC_KEY = Multicodec.of("jwk_jcs-pub", Tag.Key, 0xeb51, Multicodec.Status.Draft);
6877

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

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

120+
/** Key: mlkem-512-priv, ML-KEM 512 private key; as specified by FIPS 203, status = draft, code = 0x1313 */
121+
public static final Multicodec MLKEM_512_PRIVATE_KEY = Multicodec.of("mlkem-512-priv", Tag.Key, 0x1313, Multicodec.Status.Draft);
122+
99123
/** Key: mlkem-512-pub, ML-KEM 512 public key; as specified by FIPS 203, status = draft, code = 0x120b */
100124
public static final Multicodec MLKEM_512_PUBLIC_KEY = Multicodec.of("mlkem-512-pub", Tag.Key, 0x120b, Multicodec.Status.Draft);
101125

126+
/** Key: mlkem-768-priv, ML-KEM 768 public key; as specified by FIPS 203, status = draft, code = 0x1314 */
127+
public static final Multicodec MLKEM_768_PRIVATE_KEY = Multicodec.of("mlkem-768-priv", Tag.Key, 0x1314, Multicodec.Status.Draft);
128+
102129
/** Key: mlkem-768-pub, ML-KEM 768 public key; as specified by FIPS 203, status = draft, code = 0x120c */
103130
public static final Multicodec MLKEM_768_PUBLIC_KEY = Multicodec.of("mlkem-768-pub", Tag.Key, 0x120c, Multicodec.Status.Draft);
104131

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

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

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

216+
/** Key: x448-priv, X448 private key, status = draft, code = 0x1312 */
217+
public static final Multicodec X448_PRIVATE_KEY = Multicodec.of("x448-priv", Tag.Key, 0x1312, Multicodec.Status.Draft);
218+
153219
/** Key: x448-pub, X448 public Key, status = draft, code = 0x1204 */
154220
public static final Multicodec X448_PUBLIC_KEY = Multicodec.of("x448-pub", Tag.Key, 0x1204, Multicodec.Status.Draft);
155221

@@ -173,7 +239,9 @@ public class KeyCodec {
173239
ALL.put(CHACHA_256_KEY.code(), CHACHA_256_KEY);
174240
ALL.put(ED25519_PRIVATE_KEY.code(), ED25519_PRIVATE_KEY);
175241
ALL.put(ED25519_PUBLIC_KEY.code(), ED25519_PUBLIC_KEY);
242+
ALL.put(ED448_PRIVATE_KEY.code(), ED448_PRIVATE_KEY);
176243
ALL.put(ED448_PUBLIC_KEY.code(), ED448_PUBLIC_KEY);
244+
ALL.put(JWK_JCS_PRIVATE_KEY.code(), JWK_JCS_PRIVATE_KEY);
177245
ALL.put(JWK_JCS_PUBLIC_KEY.code(), JWK_JCS_PUBLIC_KEY);
178246
ALL.put(LAMPORT_SHA3_256_PRIVATE_KEY.code(), LAMPORT_SHA3_256_PRIVATE_KEY);
179247
ALL.put(LAMPORT_SHA3_256_PRIVATE_SHARE_KEY.code(), LAMPORT_SHA3_256_PRIVATE_SHARE_KEY);
@@ -184,8 +252,14 @@ public class KeyCodec {
184252
ALL.put(LAMPORT_SHA3_512_PRIVATE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_KEY);
185253
ALL.put(LAMPORT_SHA3_512_PRIVATE_SHARE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_SHARE_KEY);
186254
ALL.put(LAMPORT_SHA3_512_PUBLIC_KEY.code(), LAMPORT_SHA3_512_PUBLIC_KEY);
255+
ALL.put(MLDSA_44_PUBLIC_KEY.code(), MLDSA_44_PUBLIC_KEY);
256+
ALL.put(MLDSA_65_PUBLIC_KEY.code(), MLDSA_65_PUBLIC_KEY);
257+
ALL.put(MLDSA_87_PUBLIC_KEY.code(), MLDSA_87_PUBLIC_KEY);
258+
ALL.put(MLKEM_1024_PRIVATE_KEY.code(), MLKEM_1024_PRIVATE_KEY);
187259
ALL.put(MLKEM_1024_PUBLIC_KEY.code(), MLKEM_1024_PUBLIC_KEY);
260+
ALL.put(MLKEM_512_PRIVATE_KEY.code(), MLKEM_512_PRIVATE_KEY);
188261
ALL.put(MLKEM_512_PUBLIC_KEY.code(), MLKEM_512_PUBLIC_KEY);
262+
ALL.put(MLKEM_768_PRIVATE_KEY.code(), MLKEM_768_PRIVATE_KEY);
189263
ALL.put(MLKEM_768_PUBLIC_KEY.code(), MLKEM_768_PUBLIC_KEY);
190264
ALL.put(P256_PRIVATE_KEY.code(), P256_PRIVATE_KEY);
191265
ALL.put(P256_PUBLIC_KEY.code(), P256_PUBLIC_KEY);
@@ -197,12 +271,25 @@ public class KeyCodec {
197271
ALL.put(RSA_PUBLIC_KEY.code(), RSA_PUBLIC_KEY);
198272
ALL.put(SECP256K1_PRIVATE_KEY.code(), SECP256K1_PRIVATE_KEY);
199273
ALL.put(SECP256K1_PUBLIC_KEY.code(), SECP256K1_PUBLIC_KEY);
274+
ALL.put(SLHDSA_SHA2_128F_PUBLIC_KEY.code(), SLHDSA_SHA2_128F_PUBLIC_KEY);
275+
ALL.put(SLHDSA_SHA2_128S_PUBLIC_KEY.code(), SLHDSA_SHA2_128S_PUBLIC_KEY);
276+
ALL.put(SLHDSA_SHA2_192F_PUBLIC_KEY.code(), SLHDSA_SHA2_192F_PUBLIC_KEY);
277+
ALL.put(SLHDSA_SHA2_192S_PUBLIC_KEY.code(), SLHDSA_SHA2_192S_PUBLIC_KEY);
278+
ALL.put(SLHDSA_SHA2_256F_PUBLIC_KEY.code(), SLHDSA_SHA2_256F_PUBLIC_KEY);
279+
ALL.put(SLHDSA_SHA2_256S_PUBLIC_KEY.code(), SLHDSA_SHA2_256S_PUBLIC_KEY);
280+
ALL.put(SLHDSA_SHAKE_128F_PUBLIC_KEY.code(), SLHDSA_SHAKE_128F_PUBLIC_KEY);
281+
ALL.put(SLHDSA_SHAKE_128S_PUBLIC_KEY.code(), SLHDSA_SHAKE_128S_PUBLIC_KEY);
282+
ALL.put(SLHDSA_SHAKE_192F_PUBLIC_KEY.code(), SLHDSA_SHAKE_192F_PUBLIC_KEY);
283+
ALL.put(SLHDSA_SHAKE_192S_PUBLIC_KEY.code(), SLHDSA_SHAKE_192S_PUBLIC_KEY);
284+
ALL.put(SLHDSA_SHAKE_256F_PUBLIC_KEY.code(), SLHDSA_SHAKE_256F_PUBLIC_KEY);
285+
ALL.put(SLHDSA_SHAKE_256S_PUBLIC_KEY.code(), SLHDSA_SHAKE_256S_PUBLIC_KEY);
200286
ALL.put(SM2_PRIVATE_KEY.code(), SM2_PRIVATE_KEY);
201287
ALL.put(SM2_PUBLIC_KEY.code(), SM2_PUBLIC_KEY);
202288
ALL.put(SR25519_PRIVATE_KEY.code(), SR25519_PRIVATE_KEY);
203289
ALL.put(SR25519_PUBLIC_KEY.code(), SR25519_PUBLIC_KEY);
204290
ALL.put(X25519_PRIVATE_KEY.code(), X25519_PRIVATE_KEY);
205291
ALL.put(X25519_PUBLIC_KEY.code(), X25519_PUBLIC_KEY);
292+
ALL.put(X448_PRIVATE_KEY.code(), X448_PRIVATE_KEY);
206293
ALL.put(X448_PUBLIC_KEY.code(), X448_PUBLIC_KEY);
207294
}
208295

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
package com.apicatalog.multicodec.codec;
22

33
import java.util.TreeMap;
4+
import java.time.Instant;
45
import java.util.Map;
56

67
import com.apicatalog.multicodec.Multicodec.Tag;
78
import com.apicatalog.multicodec.Multicodec;
89

9-
/** Multicodec Registry - generated: Fri Aug 29 18:18:52 CEST 2025 */
10+
/** Multicodec Registry - generated: Sat Feb 07 19:12:43 CET 2026 */
1011
public class MultiaddrCodec {
1112

13+
public static final Instant UPDATED = Instant.parse("2026-02-07T18:12:43.987Z");
14+
1215
/** Multiaddr: certhash, TLS certificate's fingerprint as a multihash, status = draft, code = 0x1d2 */
1316
public static final Multicodec CERTHASH = Multicodec.of("certhash", Tag.Multiaddr, 0x1d2, Multicodec.Status.Draft);
1417

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,10 @@ public static final MulticodecRegistry getInstance(final Multicodec... codecs) {
109109
throw new IllegalArgumentException("At least one codec must be provided.");
110110
}
111111

112-
return new MulticodecRegistry(Arrays.stream(codecs)
113-
.collect(Collectors.toMap(Multicodec::code, Function.identity())));
112+
return new MulticodecRegistry(
113+
Arrays
114+
.stream(codecs)
115+
.collect(Collectors.toMap(Multicodec::code, Function.identity())));
114116
}
115117

116118
/**

0 commit comments

Comments
 (0)