All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 2022-03-02
- Use CAIP-10 in did:pkh (#279, #286, #303).
- Use updated JsonWebSignature2020 context file (#322).
- Add Presentation Submission context file (#254, #325).
- Expose JSON-LD expansion function (#326).
- Add
new_public
helper function for RSA JWK parameters (#327). - Allow using
type
property as verify options (#329). - Implement Ed25519Signature2020 (#341).
- Allow JWT VC without subject id (#346).
- Add Blockchain Vocabulary v1 2021 context (#347).
- Construct API URLs for known Tezos test networks (#350).
- Add Verifiable Driver's License Vocabulary context file (#361).
- Add Universal Wallet 2020 context file (#383).
- Update context files (#375).
- Add script to update context files (#376).
- Document did:tz resolution options (#357).
- Add support for did:tz:KT1 (#363).
- Support fractional timestamps in JWT (#315).
- Allow JWS verification to return warnings (#367.
- Verify EIP-55 mixed-case account address checksum (#370).
- Allow non-normalized ES256K (#389)
- Support Aleo
did:pkh
(#348) - Implement
did:webkey:gpg
resolution (#373). - Implement AleoSignature2021 suite (#360).
- Add DID operations (create, update, recover, deactivate) (#379)
- Add DID method transactions (#379)
- Implement Sidetree client (#379)
- Add
did:ion
DID method implementation (#379) - Added more rustdocs (#311).
- Generate EIP-712 types for EthereumEIP712Signature2021 (#301).
- Use Error types in bbs code (#338).
- Don't add JsonWebSignature2020 context URI to proof if already existing in credential/presentation (#322).
- Default to JsonWebSignature2020 for P-256
- Update EthereumEip712Signature2021 for renamed properties (#336).
- Allow DID document base context without www (#349).
- Use http for did:web:localhost (#333).
- Depend on specific versions of bbs and pairing-plus crates (#334).
- Allow additional verification method types for use with EcdsaSecp256k1RecoverySignature2020 (#351).
- Use SHA-256 instead of Keccak in EcdsaSecp256k1RecoverySignature2020/ES256K-R (#351). Signatures using Keccak can still be verified, for compatibility, but are deprecated (#367).
- Allow issuer object with id property in JWT VC (#374).
- Implement did:key for RSA (#309)
- Detect JSON DID Resolution Result, for Sidetree REST API compatibility (#372).
DIDMethod
trait no longer requiresDIDResolver
trait. (8fff89a).- JWT VC timestamp range constrained by microsection precision (#315).
- EthereumEip712Signature2021 specification deprecated properties
messageSchema
andeip712Domain
. - did:pkh deprecated non-CAIP-10 submethods (btc, celo, doge, eth, poly, sol, tz).
- EcdsaSecp256k1RecoverySignature2020/ES256K-R using Keccak is deprecated.
did:pkh
specification moved into its own repository (#356).
- Fixed panic in string prefix checking (#299).
- Fixed panic in EIP-712 type string parsing (#302).
- Allow JWT VC with single-element array subject (#313).
- Address clippy errors and warnings (#305, #306).
- Fix example RSA public key modulus representation (#308).
- Doctest BBS generator parameters (#304).
- Use BBS+ Signatures 2020 context file (#324).
- Fixed url dependency (#365).
- Fixed EcdsaSecp256k1RecoverySignature2020/ES256K-R hashing (#351, #367).
- Don't use ES256K-R for EthereumEip712Signature2021 (#351).
- Preserve VC/VP properties in JWT format (#353).
- Restrict revocation lists to HTTPS (#317).
- Limit size of revocation list credentials (#339).
- Disallow example non-DID VC issuer outside testing (#316).
- Disallow out-of-bounds revocation list index (#314).
- Zeroize JWKs on drop (#327).
- Reduce exposure of private key material during signing (#328).
- Avoid cloning secret keys during generation (#391).
0.3.0 2021-09-16
- Add
PrimaryDIDURL
type. - Add
EthereumEip712Signature2021
v1 context. - Add
VerificationMethodMap::get_id
function. - Implement converting JWK to Tezos format.
- Add
did:pkh:poly:
. - Use
vc-test-suite
example keys and DIDs. - Implement Revocation List 2020 credential status checking.
- Implement
PS256
JWS algorithm. - Work-in-progress ZCap invocation methods
- Implement
FromStr
forURI
. - Support
publicKeyJwk
inEthereumEip712Signature2021
. - Add DID Test Suite implementation generator.
- Implement
JcsTezosSignature2021
. - Implement
EthereumPersonalSignature2021
. - Implement
EthereumEip712Signature2021
. - Enable
Eip712Signature2021
withdid:pkh
. - Allow using
Eip712Signature2021
with normal VM types. - Implement
did:webkey:
- Implement SSH key parsing.
- Implement JWK Thumbprint.
- Add
User-Agent
header in requests. - Add
ES256K
to algorithm mistmatch handling. - Use custom internal JWK algorithms for Tezos signing.
- Allow returning warnings from proof verification.
- Use
MissingFeatures
error in proof type selection. - Add
Proof::with_options
for proof params. - Support
publicKeyHex
forEcdsaSecp256k1VerificationKey2019
. - Resolve
did:key:zUC7
DIDs (Bls12381G2
) - Add BBS+ types and functions.
- Add
did_resolve::get_verification_methods
function - Ensure or pick default verification method during VC/VP creation.
- Use PrimaryDIDURL in dereference trait method.
- Pass resolver option in issue/prepare functions.
- Update
blockchainAccountId
for new CAIP-10. - Default to
PS256
for RSA signing. - Use compressed
P-256
indid:key
. - Disallow untyped properties in EIP-712 messages.
- Update picking proof suite for tz.
- Update DID resolution error handling and content-type handling.
- Add arbitrary property set in LDP options to be included in Proof.
- Deprecate using
key_ops
to select proof type.
- Remove timestamp from generative DID methods.
- Removed bundled
json-ld
crate.
- Catch double fragment in service endpoint URL.
- Improve JWK/VM comparison.
- Use CAIP-26 for Tezos chain IDs.
- Use CAIP-30 for Solana chain ids.
- Fix converting RSA JWK to public.
- Fix
did:example:foo
anddid:example:bar
. - Update W3C Software and Document Short Notice.
- Handle eth signatures with recovery ID starting at 0.
- Only match VM URI for specific DID methods.
- Allow time zone offsets other than "Z" in VCs.
- Improve
did:pkh
documentation and chain id handling. - Set
contentType
when returning URL in dereference. - Fix WASM tests.
- Fix on-chain resolution in
did-tezos
. - Fix WASM async trait compilation.
- Improve JWT support.
- Canonicalize negative zero.
- Support public key values in
did:ethr
. - Use updated
json-ld
crate, enabling better conformance with RDF deserialization tests.
- Validate linked data proof object RDF consistency.
- Check key size for RSA JWS
- Validate key and algorithm for
JsonWebSignature2020
. - Verification method and proof purpose are now checked during verifiable credential issuance and verifiable presentation generation.
0.2.2 - 2021-05-26
- Add
ssi::tzkey::{sign_tezos, encode_tezos_signed_message, decode_tzsig}
- Improve testing of Tezos signing, encoding and decoding.
- Allow using TezosSignature2021 with
LinkedDataProofs::prepare
. - Fix parsing of
sppk
andp2pk
Tezos signature types.
- Verify signature in
TezosSignature2021
when JWK is in proof object.
0.2.1 - 2021-04-28
- Add
TezosSignature2021
/TezosMethod2021
. - Parse Tezos-base58 keys.
- Use
k256
instead oflibsecp256k1
. - Update
ssi-contexts
tov0.1.0
- Fix dependency conflict between
simple_asn1
andnum-bigint
. - Fix broken links.
0.2.0 - 2021-04-01
- Add function
HTTPDIDResolver::new
. - Add
SeriesResolver
struct, for combining multiple DID resolvers in series. - Add
DIDParameters
struct. - Add
DIDResolver::dereference
function. - Support W3id DID v1 context URL.
- Add
jws::sign_bytes_b64
function. - Support
secp256k1
indid:key
. - Support
P-256
(Secp256r1) indid:key
. - Support
tz2
andtz3
addresses in did:tz. - Implement EcdsaSecp256k1Signature2019 linked data signature suite.
- Implement EcdsaSecp256k1RecoveryMethod2020 linked data signature suite.
- Implement
EcdsaSecp256r1Signature2019
linked data signature suite. - Support blockchainAccountId for certain proof types.
- Support
ES256K
in vc-test-suite driver. - Support Rust stable.
- Implement external signing for linked data proofs: add
LinkedDataProofs::prepare
function andProofPreparation
struct. - Add non-registry implementation of did:ethr.
- Implement EIP-712-based linked data signature suite.
- Add experimental
did:sol
DID method for Solana, with verification method. - Allow VP without VC, for DIDAuth (except for in vc-test-suite).
- Implement
Default
forPresentation
. - Complete
did:tz
resolution. - Add Citizenship context.
- Add Vaccination context.
- Add DID Resolution context.
- Add JSON Web Signature 2020 context.
- Support HTTP(S) requests in WASM and on Android.
- Support relative DID URLs in DID documents.
- Support publicKeyBase58 for Ed25519.
- Added
DIDMethods::generate
function. - Add
did:pkh
Public Key Hash DID Method. - Add
did:onion
implementation. - Update vc-test-suite` test driver to remove workarounds.
- Use
ssi-contexts
crate.
- Make
ResolutionResult
struct public. - Remove
ring
from default features. - Use
method-not-supported
DID resolution error. - Allow objects in
@context
property of DID document, VPs, and proofs. - Make
DIDResolver
object-safe. - Implement
DIDResolver::resolve_representation
forDIDMethods
. - Preserve key order in
ResolutionResult
property_set
. - Completed DID URL Dereferencing implementation.
- Update
iref
andasync-std
dependency versions. - Update DID metadata parameter names.
- Support
ResolutionResult
or DID Document inHTTPDIDResolver
response. - Implement DID URL dereferencing through
HTTPDIDResolver
. - Add
Data
variant toContent
enum. - Change
did:tz
verification method type toEd25519PublicKeyBLAKE2BDigestSize20Base58CheckEncoded2021
. - Add context to
Ed25519BLAKE2BDigestSize20Base58CheckEncodedSignature2021
linked data proofs. - Add name to
Error::ResourceNotFound
. - Make
jws::sign_bytes
return bytes instead of string. - Allow multiple proofs and multiple verification methods in a DID document
- Bundle
json-ld
crate, forcrates.io
release. - Added
Source::KeyAndPattern
enum variant. - Made
ProofSuite
object-safe.
- Fix
tz1
hashing. - Add missing number in RDF lang subtag parsing.
- Fix name of JWK EC
crv
property. - Update crate author fields.
- Verify verification relationship for proof purpose.
0.1.0 - 2021-01-27
- Issuing and verifying LD-Proof and JWT Verifiable Credentials and Verifiable Presentations.
- Testing with VC Test Suite.
- Linked data signature types RsaSignature2018 and Ed25519Signature2018.
- Testing with VC HTTP API
plugfest-2020
Test Suite. - Resolution of did:key, did:web, and did:tz (layer 1) DIDs.
- Traits for DID Methods and DID Resolvers, Linked Data Documents and Proof Suites (Types.
- DID Resolution HTTP(S) Binding.
- Partial implementation of DID URL Dereferencing.
- JSON Web Key (JWK) representation of RSA and Ed25519 keys.
- JSON Web Algorithms (JWA)
RS256
andEdDSA
(Ed25519). - Ed25519 keypair generation.
- Deriving did:key and did:tz DIDs from Ed25519 keypairs.
- JWK to DER (ASN.1) conversion.
- JWK conversion for ring, ed25519-dalek, and rsa.
- JSON Web Token (JWT) encoding and decoding.
- JSON Web Signature (JWS) signing and verifying, including Unencoded Payload Option.
- JSON-LD to RDF Deserialization. Tested with JSON-LD Test Suite test cases, with unpassing tests identified.
- RDF Dataset Normalization (URDNA2015). Tested with RDF Dataset Normalization Test Cases.
- Bundled JSON-LD context files, lazily parsed.
- Apache License, Version 2.0.
- Copyright notices.