diff --git a/.github/maven-central-settings.xml b/.github/maven-central-settings.xml
deleted file mode 100644
index 8778053..0000000
--- a/.github/maven-central-settings.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
- ossrh
- ${env.MAVEN_USERNAME}
- ${env.MAVEN_PASSWORD}
-
-
-
diff --git a/README.md b/README.md
index c4eb5e3..b3cc331 100644
--- a/README.md
+++ b/README.md
@@ -110,7 +110,7 @@ To include Copper Multicodec in your project, add the following dependency to yo
com.apicatalog
copper-multicodec
- 1.1.0
+ 2.0.0
```
@@ -138,4 +138,3 @@ Fork and clone the project repository.
- [Multicodec](https://github.com/multiformats/multicodec)
- [Multihash](https://github.com/multiformats/multihash)
- [unsigned-varint](https://github.com/multiformats/unsigned-varint)
-
diff --git a/pom.xml b/pom.xml
index 6de8f5a..f24f122 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
4.0.0
com.apicatalog
copper-multicodec
- 1.1.0
+ 2.0.0
jar
https://github.com/filip26/copper-multicodec
@@ -25,7 +25,7 @@
5.13.4
- Copper Multcodec
+ Copper Multicodec
Multicodec & Multihash API, Registry
diff --git a/src/main/java/com/apicatalog/multicodec/codec/CidCodec.java b/src/main/java/com/apicatalog/multicodec/codec/CidCodec.java
index 21552cf..9b94a3e 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/CidCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/CidCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class CidCodec {
/** Cid: cidv1, CIDv1, status = permanent, code = 0x1 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/HashCodec.java b/src/main/java/com/apicatalog/multicodec/codec/HashCodec.java
index 74572ef..36446ad 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/HashCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/HashCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class HashCodec {
/** Hash: crc32, CRC-32 non-cryptographic hash algorithm (IEEE 802.3), status = draft, code = 0x132 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/KeyCodec.java b/src/main/java/com/apicatalog/multicodec/codec/KeyCodec.java
index 32132a1..f69e656 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/KeyCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/KeyCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class KeyCodec {
/** Key: aes-128, 128-bit AES symmetric key, status = draft, code = 0xa0 */
@@ -93,6 +93,15 @@ public class KeyCodec {
/** Key: lamport-sha3-512-pub, Lamport public key based on SHA3-512, status = draft, code = 0x1a14 */
public static final Multicodec LAMPORT_SHA3_512_PUBLIC_KEY = Multicodec.of("lamport-sha3-512-pub", Tag.Key, 0x1a14, Multicodec.Status.Draft);
+ /** Key: mlkem-1024-pub, ML-KEM 1024 public key; as specified by FIPS 203, status = draft, code = 0x120d */
+ public static final Multicodec MLKEM_1024_PUBLIC_KEY = Multicodec.of("mlkem-1024-pub", Tag.Key, 0x120d, Multicodec.Status.Draft);
+
+ /** Key: mlkem-512-pub, ML-KEM 512 public key; as specified by FIPS 203, status = draft, code = 0x120b */
+ public static final Multicodec MLKEM_512_PUBLIC_KEY = Multicodec.of("mlkem-512-pub", Tag.Key, 0x120b, Multicodec.Status.Draft);
+
+ /** Key: mlkem-768-pub, ML-KEM 768 public key; as specified by FIPS 203, status = draft, code = 0x120c */
+ public static final Multicodec MLKEM_768_PUBLIC_KEY = Multicodec.of("mlkem-768-pub", Tag.Key, 0x120c, Multicodec.Status.Draft);
+
/** Key: p256-priv, P-256 private key, status = draft, code = 0x1306 */
public static final Multicodec P256_PRIVATE_KEY = Multicodec.of("p256-priv", Tag.Key, 0x1306, Multicodec.Status.Draft);
@@ -123,6 +132,9 @@ public class KeyCodec {
/** Key: secp256k1-pub, Secp256k1 public key (compressed), status = draft, code = 0xe7 */
public static final Multicodec SECP256K1_PUBLIC_KEY = Multicodec.of("secp256k1-pub", Tag.Key, 0xe7, Multicodec.Status.Draft);
+ /** Key: sm2-priv, SM2 private key, status = draft, code = 0x1310 */
+ public static final Multicodec SM2_PRIVATE_KEY = Multicodec.of("sm2-priv", Tag.Key, 0x1310, Multicodec.Status.Draft);
+
/** Key: sm2-pub, SM2 public key (compressed), status = draft, code = 0x1206 */
public static final Multicodec SM2_PUBLIC_KEY = Multicodec.of("sm2-pub", Tag.Key, 0x1206, Multicodec.Status.Draft);
@@ -172,6 +184,9 @@ public class KeyCodec {
ALL.put(LAMPORT_SHA3_512_PRIVATE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_KEY);
ALL.put(LAMPORT_SHA3_512_PRIVATE_SHARE_KEY.code(), LAMPORT_SHA3_512_PRIVATE_SHARE_KEY);
ALL.put(LAMPORT_SHA3_512_PUBLIC_KEY.code(), LAMPORT_SHA3_512_PUBLIC_KEY);
+ ALL.put(MLKEM_1024_PUBLIC_KEY.code(), MLKEM_1024_PUBLIC_KEY);
+ ALL.put(MLKEM_512_PUBLIC_KEY.code(), MLKEM_512_PUBLIC_KEY);
+ ALL.put(MLKEM_768_PUBLIC_KEY.code(), MLKEM_768_PUBLIC_KEY);
ALL.put(P256_PRIVATE_KEY.code(), P256_PRIVATE_KEY);
ALL.put(P256_PUBLIC_KEY.code(), P256_PUBLIC_KEY);
ALL.put(P384_PRIVATE_KEY.code(), P384_PRIVATE_KEY);
@@ -182,6 +197,7 @@ public class KeyCodec {
ALL.put(RSA_PUBLIC_KEY.code(), RSA_PUBLIC_KEY);
ALL.put(SECP256K1_PRIVATE_KEY.code(), SECP256K1_PRIVATE_KEY);
ALL.put(SECP256K1_PUBLIC_KEY.code(), SECP256K1_PUBLIC_KEY);
+ ALL.put(SM2_PRIVATE_KEY.code(), SM2_PRIVATE_KEY);
ALL.put(SM2_PUBLIC_KEY.code(), SM2_PUBLIC_KEY);
ALL.put(SR25519_PRIVATE_KEY.code(), SR25519_PRIVATE_KEY);
ALL.put(SR25519_PUBLIC_KEY.code(), SR25519_PUBLIC_KEY);
diff --git a/src/main/java/com/apicatalog/multicodec/codec/MultiaddrCodec.java b/src/main/java/com/apicatalog/multicodec/codec/MultiaddrCodec.java
index 9ff3c41..8a6a614 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/MultiaddrCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/MultiaddrCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class MultiaddrCodec {
/** Multiaddr: certhash, TLS certificate's fingerprint as a multihash, status = draft, code = 0x1d2 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/MultiformatCodec.java b/src/main/java/com/apicatalog/multicodec/codec/MultiformatCodec.java
index 67577ee..c10f401 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/MultiformatCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/MultiformatCodec.java
@@ -6,10 +6,10 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class MultiformatCodec {
- /** Multiformat: caip-50, CAIP-50 multi-chain account id, status = draft, code = 0xca */
+ /** Multiformat: caip-50, CAIP-50 multi-chain account ID, status = draft, code = 0xca */
public static final Multicodec CAIP_50 = Multicodec.of("caip-50", Tag.Multiformat, 0xca, Multicodec.Status.Draft);
/** Multiformat: multiaddr, status = draft, code = 0x32 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/MultihashCodec.java b/src/main/java/com/apicatalog/multicodec/codec/MultihashCodec.java
index 70a11f9..d6370ca 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/MultihashCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/MultihashCodec.java
@@ -6,12 +6,15 @@
import com.apicatalog.multicodec.Multicodec;
import com.apicatalog.multihash.Multihash;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class MultihashCodec {
/** Multihash: bcrypt-pbkdf, Bcrypt-PBKDF key derivation function, status = draft, code = 0xd00d */
public static final Multihash BCRYPT_PBKDF = Multihash.of("bcrypt-pbkdf", 0xd00d, Multicodec.Status.Draft);
+ /** Multihash: bittorrent-pieces-root, BitTorrent v2 pieces root hash., status = draft, code = 0xb702 */
+ public static final Multihash BITTORRENT_PIECES_ROOT = Multihash.of("bittorrent-pieces-root", 0xb702, Multicodec.Status.Draft);
+
/** Multihash: blake2b-104, status = draft, code = 0xb20d */
public static final Multihash BLAKE2B_104 = Multihash.of("blake2b-104", 0xb20d, Multicodec.Status.Draft);
@@ -306,6 +309,12 @@ public class MultihashCodec {
/** Multihash: dbl-sha2-256, status = draft, code = 0x56 */
public static final Multihash DBL_SHA2_256 = Multihash.of("dbl-sha2-256", 0x56, Multicodec.Status.Draft);
+ /** Multihash: ed2k, eDonkey2000 hash., status = draft, code = 0xed20 */
+ public static final Multihash ED2K = Multihash.of("ed2k", 0xed20, Multicodec.Status.Draft);
+
+ /** Multihash: fr32-sha256-trunc254-padbintree, A balanced binary tree hash used in Filecoin Piece Commitments as described in FRC-0069, status = draft, code = 0x1011 */
+ public static final Multihash FR32_SHA256_TRUNC254_PADBINTREE = Multihash.of("fr32-sha256-trunc254-padbintree", 0x1011, Multicodec.Status.Draft);
+
/** Multihash: identity, raw binary, status = permanent, code = 0x0 */
public static final Multihash IDENTITY = Multihash.of("identity", 0x0, Multicodec.Status.Permanent);
@@ -1078,6 +1087,7 @@ public class MultihashCodec {
static {
ALL.put(BCRYPT_PBKDF.code(), BCRYPT_PBKDF);
+ ALL.put(BITTORRENT_PIECES_ROOT.code(), BITTORRENT_PIECES_ROOT);
ALL.put(BLAKE2B_104.code(), BLAKE2B_104);
ALL.put(BLAKE2B_112.code(), BLAKE2B_112);
ALL.put(BLAKE2B_120.code(), BLAKE2B_120);
@@ -1176,6 +1186,8 @@ public class MultihashCodec {
ALL.put(BLAKE2S_96.code(), BLAKE2S_96);
ALL.put(BLAKE3.code(), BLAKE3);
ALL.put(DBL_SHA2_256.code(), DBL_SHA2_256);
+ ALL.put(ED2K.code(), ED2K);
+ ALL.put(FR32_SHA256_TRUNC254_PADBINTREE.code(), FR32_SHA256_TRUNC254_PADBINTREE);
ALL.put(IDENTITY.code(), IDENTITY);
ALL.put(KANGAROOTWELVE.code(), KANGAROOTWELVE);
ALL.put(KECCAK_224.code(), KECCAK_224);
diff --git a/src/main/java/com/apicatalog/multicodec/codec/NamespaceCodec.java b/src/main/java/com/apicatalog/multicodec/codec/NamespaceCodec.java
index 5ed4d97..e2f42f4 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/NamespaceCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/NamespaceCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class NamespaceCodec {
/** Namespace: arweave-ns, Arweave Namespace, status = draft, code = 0xb29910 */
@@ -36,7 +36,7 @@ public class NamespaceCodec {
/** Namespace: skynet-ns, Skynet Namespace, status = draft, code = 0xb19910 */
public static final Multicodec SKYNET_NS = Multicodec.of("skynet-ns", Tag.Namespace, 0xb19910, Multicodec.Status.Draft);
- /** Namespace: streamid, Ceramic Stream Id, status = draft, code = 0xce */
+ /** Namespace: streamid, Ceramic Stream ID, status = draft, code = 0xce */
public static final Multicodec STREAMID = Multicodec.of("streamid", Tag.Namespace, 0xce, Multicodec.Status.Draft);
/** Namespace: subspace-ns, Subspace Network Namespace, status = draft, code = 0xb39910 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/SerializationCodec.java b/src/main/java/com/apicatalog/multicodec/codec/SerializationCodec.java
index 23d0381..b15f1ab 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/SerializationCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/SerializationCodec.java
@@ -6,7 +6,7 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class SerializationCodec {
/** Serialization: bencode, bencode, status = draft, code = 0x63 */
diff --git a/src/main/java/com/apicatalog/multicodec/codec/TransportCodec.java b/src/main/java/com/apicatalog/multicodec/codec/TransportCodec.java
index 9c8b1fb..4bccdc7 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/TransportCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/TransportCodec.java
@@ -6,12 +6,15 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class TransportCodec {
/** Transport: transport-bitswap, Bitswap datatransfer, status = draft, code = 0x900 */
public static final Multicodec TRANSPORT_BITSWAP = Multicodec.of("transport-bitswap", Tag.Transport, 0x900, Multicodec.Status.Draft);
+ /** Transport: transport-filecoin-piece-http, HTTP piece retrieval from Filecoin storage provider; https://github.com/filecoin-project/FIPs/blob/master/FRCs/frc-0066.md, status = draft, code = 0x930 */
+ public static final Multicodec TRANSPORT_FILECOIN_PIECE_HTTP = Multicodec.of("transport-filecoin-piece-http", Tag.Transport, 0x930, Multicodec.Status.Draft);
+
/** Transport: transport-graphsync-filecoinv1, Filecoin graphsync datatransfer, status = draft, code = 0x910 */
public static final Multicodec TRANSPORT_GRAPHSYNC_FILECOINV1 = Multicodec.of("transport-graphsync-filecoinv1", Tag.Transport, 0x910, Multicodec.Status.Draft);
@@ -22,6 +25,7 @@ public class TransportCodec {
static {
ALL.put(TRANSPORT_BITSWAP.code(), TRANSPORT_BITSWAP);
+ ALL.put(TRANSPORT_FILECOIN_PIECE_HTTP.code(), TRANSPORT_FILECOIN_PIECE_HTTP);
ALL.put(TRANSPORT_GRAPHSYNC_FILECOINV1.code(), TRANSPORT_GRAPHSYNC_FILECOINV1);
ALL.put(TRANSPORT_IPFS_GATEWAY_HTTP.code(), TRANSPORT_IPFS_GATEWAY_HTTP);
}
diff --git a/src/main/java/com/apicatalog/multicodec/codec/VarsigCodec.java b/src/main/java/com/apicatalog/multicodec/codec/VarsigCodec.java
index bdad225..cea05af 100644
--- a/src/main/java/com/apicatalog/multicodec/codec/VarsigCodec.java
+++ b/src/main/java/com/apicatalog/multicodec/codec/VarsigCodec.java
@@ -6,14 +6,14 @@
import com.apicatalog.multicodec.Multicodec.Tag;
import com.apicatalog.multicodec.Multicodec;
-/** Multicodec Registry - generated: Wed Oct 02 16:27:05 CEST 2024 */
+/** Multicodec Registry - generated: Tue Jul 29 16:54:27 CEST 2025 */
public class VarsigCodec {
- /** Varsig: bls-12381-g1-sig, G1 signature for BLS-12381-G2, status = draft, code = 0xd0ea */
- public static final Multicodec BLS_12381_G1_SIG = Multicodec.of("bls-12381-g1-sig", Tag.Varsig, 0xd0ea, Multicodec.Status.Draft);
+ /** Varsig: bls12_381-g1-sig, G1 signature for BLS12-381, status = draft, code = 0xd0ea */
+ public static final Multicodec BLS12_381_G1_SIG = Multicodec.of("bls12_381-g1-sig", Tag.Varsig, 0xd0ea, Multicodec.Status.Draft);
- /** Varsig: bls-12381-g2-sig, G2 signature for BLS-12381-G1, status = draft, code = 0xd0eb */
- public static final Multicodec BLS_12381_G2_SIG = Multicodec.of("bls-12381-g2-sig", Tag.Varsig, 0xd0eb, Multicodec.Status.Draft);
+ /** Varsig: bls12_381-g2-sig, G2 signature for BLS12-381, status = draft, code = 0xd0eb */
+ public static final Multicodec BLS12_381_G2_SIG = Multicodec.of("bls12_381-g2-sig", Tag.Varsig, 0xd0eb, Multicodec.Status.Draft);
/** Varsig: eddsa, Edwards-Curve Digital Signature Algorithm, status = draft, code = 0xd0ed */
public static final Multicodec EDDSA = Multicodec.of("eddsa", Tag.Varsig, 0xd0ed, Multicodec.Status.Draft);
@@ -24,11 +24,11 @@ public class VarsigCodec {
/** Varsig: es256, ES256 Signature Algorithm, status = draft, code = 0xd01200 */
public static final Multicodec ES256 = Multicodec.of("es256", Tag.Varsig, 0xd01200, Multicodec.Status.Draft);
- /** Varsig: es256k, ES256K Siganture Algorithm (secp256k1), status = draft, code = 0xd0e7 */
+ /** Varsig: es256k, ES256K Signature Algorithm (secp256k1), status = draft, code = 0xd0e7 */
public static final Multicodec ES256K = Multicodec.of("es256k", Tag.Varsig, 0xd0e7, Multicodec.Status.Draft);
- /** Varsig: es284, ES384 Signature Algorithm, status = draft, code = 0xd01201 */
- public static final Multicodec ES284 = Multicodec.of("es284", Tag.Varsig, 0xd01201, Multicodec.Status.Draft);
+ /** Varsig: es384, ES384 Signature Algorithm, status = draft, code = 0xd01201 */
+ public static final Multicodec ES384 = Multicodec.of("es384", Tag.Varsig, 0xd01201, Multicodec.Status.Draft);
/** Varsig: es512, ES512 Signature Algorithm, status = draft, code = 0xd01202 */
public static final Multicodec ES512 = Multicodec.of("es512", Tag.Varsig, 0xd01202, Multicodec.Status.Draft);
@@ -42,13 +42,13 @@ public class VarsigCodec {
protected static final Map ALL = new TreeMap<>();
static {
- ALL.put(BLS_12381_G1_SIG.code(), BLS_12381_G1_SIG);
- ALL.put(BLS_12381_G2_SIG.code(), BLS_12381_G2_SIG);
+ ALL.put(BLS12_381_G1_SIG.code(), BLS12_381_G1_SIG);
+ ALL.put(BLS12_381_G2_SIG.code(), BLS12_381_G2_SIG);
ALL.put(EDDSA.code(), EDDSA);
ALL.put(EIP_191.code(), EIP_191);
ALL.put(ES256.code(), ES256);
ALL.put(ES256K.code(), ES256K);
- ALL.put(ES284.code(), ES284);
+ ALL.put(ES384.code(), ES384);
ALL.put(ES512.code(), ES512);
ALL.put(NONSTANDARD_SIG.code(), NONSTANDARD_SIG);
ALL.put(RS256.code(), RS256);