Skip to content

Commit

Permalink
Remove PassthroughDigest and update crypto dependencies (spruceid#385)
Browse files Browse the repository at this point in the history
Ran `cargo hack test --each-feature --workspace --exclude-features
"tor-tests" -- --test-threads=8`

3 tests are failing, from older changes, but still worth fixing.

Also:
* Replace sequioa-openpgp with rpgp (to avoid conflicts with RustCrypto versions)
* Remove testing features
* Ignore end-to-end tests
* Add test run with all features enabled (disabled for now because it takes too long)
* Fix wasm compilation
  • Loading branch information
sbihel committed Oct 12, 2022
1 parent c10e70e commit bd244df
Show file tree
Hide file tree
Showing 28 changed files with 348 additions and 332 deletions.
33 changes: 7 additions & 26 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
uses: actions/checkout@v2
with:
submodules: true
- uses: taiki-e/install-action@cargo-hack

- name: Cache Cargo registry and build artifacts
uses: actions/cache@v2
Expand All @@ -29,37 +30,20 @@ jobs:
${{ runner.os }}-ssi2-cargo-
- name: Build
run: cargo build --verbose --workspace
run: cargo build --workspace

- name: Fmt
run: cargo fmt -- --check

- name: Clippy
run: RUSTFLAGS="-Dwarnings" cargo clippy --workspace

- name: Test
run: cargo test --verbose --workspace
- name: Test each feature
# run: cargo hack test --each-feature --workspace -- --test-threads=4
run: cargo test --workspace -- --test-threads=4

- name: Test with rust crypto libraries
run: cargo test --workspace --no-default-features --features w3c,tezos,eip,solana

- name: Test with openssl and ring
run: cargo test --workspace --no-default-features --features ring,openssl,w3c,tezos,eip,solana

- name: Test with secp256k1
run: |
cargo test --verbose --workspace --features secp256k1
cargo test --verbose --manifest-path did-key/Cargo.toml --features secp256k1,ssi/ring
cargo test --verbose --manifest-path did-tezos/Cargo.toml --features secp256k1,ssi/ring
- name: Test with p256
run: |
cargo test --verbose --workspace --features secp256r1
cargo test --verbose --manifest-path did-key/Cargo.toml --features secp256r1,ssi/secp256r1,ssi/ring
cargo test --verbose --manifest-path did-tezos/Cargo.toml --features secp256r1,ssi/secp256r1,ssi/ring
- name: Test DID Resolution HTTP(S) Binding
run: cargo test --manifest-path ssi-dids/Cargo.toml --features http
- name: Test all features
run: cargo test --workspace --all-features -- --test-threads=4

- name: Checkout vc-test-suite
uses: actions/checkout@v2
Expand All @@ -78,6 +62,3 @@ jobs:
run: |
rustup target add wasm32-unknown-unknown
cargo check --workspace --target wasm32-unknown-unknown
- name: Test Aleo signatures
run: cargo test --workspace --features aleo
6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ openssl = ["ssi-vc/openssl", "ssi-ucan/openssl", "ssi-zcap-ld/openssl"]
ring = ["ssi-vc/ring", "ssi-ucan/ring", "ssi-zcap-ld/ring"]

http-did = ["ssi-dids/http"]
example-http-issuer = ["ssi-dids/testing", "ssi-ldp/example-http-issuer"]
example-http-issuer = ["ssi-ldp/example-http-issuer"]

[dependencies]
ssi-contexts = { version = "0.1.3", path = "contexts/" }
Expand Down Expand Up @@ -96,9 +96,9 @@ hyper = { version = "0.14", features = ["server", "http1", "stream"] }
hex = "0.4"
multibase = "0.8"
serde_jcs = "0.1"
k256 = { version = "0.9", features = ["zeroize", "ecdsa"] }
k256 = { version = "0.11", features = ["ecdsa"] }
serde_json = "1.0"
ssi-dids = { path = "./ssi-dids", version = "0.1", features = ["testing"] }
ssi-dids = { path = "./ssi-dids", version = "0.1" }

[package.metadata.docs.rs]
features = ["secp256r1", "secp256k1", "ripemd-160", "http-did"]
Expand Down
1 change: 1 addition & 0 deletions did-ion/src/sidetree.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2063,6 +2063,7 @@ mod tests {
}

#[test]
#[ignore]
fn test_deactivate_verify_reveal() {
let recover_pvo = RECOVER_OPERATION
.clone()
Expand Down
4 changes: 2 additions & 2 deletions did-key/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ ssi-crypto = { path = "../ssi-crypto", default-features = false, version = "0.1"
async-trait = "0.1"
thiserror = "1.0"
multibase = "0.8"
k256 = { version = "0.9.6", optional = true, features = ["zeroize", "ecdsa"] }
p256 = { version = "0.9.0", optional = true, features = ["zeroize", "ecdsa"] }
k256 = { version = "0.11", optional = true, features = ["ecdsa"] }
p256 = { version = "0.11", optional = true, features = ["ecdsa"] }
serde_json = "1.0"
simple_asn1 = "^0.5.2"

Expand Down
4 changes: 2 additions & 2 deletions did-key/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ impl DIDResolver for DIDKey {
);
} else if data[0] == DID_KEY_P384_PREFIX[0] && data[1] == DID_KEY_P384_PREFIX[1] {
#[cfg(feature = "ssi_p384")]
match ssi::jwk::p384_parse(&data[2..]) {
match ssi_jwk::p384_parse(&data[2..]) {
Ok(jwk) => {
vm_type = "JsonWebKey2020".to_string();
vm_type_iri = "https://w3id.org/security#JsonWebKey2020".to_string();
Expand Down Expand Up @@ -340,7 +340,7 @@ impl DIDMethod for DIDKey {
}
#[cfg(feature = "ssi_p384")]
"P-384" => {
let pk_bytes = match ssi::jwk::p384_serialize(params) {
let pk_bytes = match ssi_jwk::p384_serialize(params) {
Ok(pk) => pk,
Err(_err) => return None,
};
Expand Down
3 changes: 0 additions & 3 deletions did-onion/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,6 @@ repository = "https://github.com/spruceid/ssi/"
homepage = "https://github.com/spruceid/ssi/tree/main/did-onion/"
documentation = "https://docs.rs/did-onion/"

[features]
tor-tests = []

[dependencies]
ssi-dids = { path = "../ssi-dids", version = "0.1", default-features = false }
ssi-jwk = { path = "../ssi-jwk", version = "0.1" }
Expand Down
2 changes: 1 addition & 1 deletion did-onion/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -219,7 +219,7 @@ mod tests {
"did:onion:fscst5exmlmr262byztwz4kzhggjlzumvc2ndvgytzoucr2tkgxf7mid";

#[tokio::test]
#[cfg_attr(not(feature = "tor-tests"), ignore)]
#[ignore]
async fn did_onion_resolve_live() {
let (res_meta, doc_opt, _doc_meta) = DIDOnion::default()
.resolve(TORGAP_DEMO_DID, &ResolutionInputMetadata::default())
Expand Down
2 changes: 2 additions & 0 deletions did-tezos/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1354,6 +1354,7 @@ mod tests {
}

#[tokio::test]
#[ignore]
async fn test_full_resolution() {
// let address = "tz1giDGsifWB9q9siekCKQaJKrmC9da5M43J";
// let pk = "edpkvRWhuk5cLe5vwR7TGfSJxVLmVDk5og45WAhsAAvfqQXmYKNPve";
Expand Down Expand Up @@ -1440,6 +1441,7 @@ mod tests {
}

#[tokio::test]
#[ignore]
async fn test_full_resolution_kt1() {
let live_did_manager = format!("did:tz:{}", LIVE_KT1);

Expand Down
13 changes: 5 additions & 8 deletions did-webkey/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ openssl = ["ssi-dids/openssl"]

[dependencies]
ssi-dids = { version = "0.1", path = "../ssi-dids", default-features = false, features = ["http"] }
ssi-ssh = { version = "0.1", path = "../ssi-ssh", default-features = false }
ssi-ssh = { version = "0.1", path = "../ssi-ssh" }
anyhow = "1.0.52"
async-trait = "0.1.52"
reqwest = { version = "0.11.9", features = ["json"] }
Expand All @@ -29,20 +29,17 @@ http = "0.2.6"
serde_json = "1.0.75"
serde = { version = "1.0.134", features = ["derive"] }
sshkeys = "0.3.1"

sequoia-openpgp = { version = "1.7.0", default-features = false, features = [
"compression-deflate",
"crypto-rust",
"allow-experimental-crypto",
"allow-variable-time-crypto",
] }
pgp = "0.8.0"


[target.'cfg(target_os = "android")'.dependencies.reqwest]
version = "0.11.9"
features = ["json", "native-tls-vendored"]

[dev-dependencies]
env_logger = "*"
test-log = "0.2.11"
pretty_assertions = "1.3"
tokio = { version = "1.15.0", features = ["macros"] }
async-std = { version = "1.10.0", features = ["attributes"] }
futures = "0.3.19"
Expand Down
63 changes: 42 additions & 21 deletions did-webkey/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,10 @@
use core::str::FromStr;

use anyhow::{anyhow, Context, Result};
use async_trait::async_trait;
use core::str::FromStr;
use pgp::{types::KeyTrait, Deserializable, SignedPublicKey};
use serde::{Deserialize, Serialize};
use std::{collections::BTreeMap, io::Cursor};

use anyhow::{anyhow, Context, Result};
use sequoia_openpgp::{
cert::prelude::*,
parse::{PacketParser, Parse},
serialize::SerializeInto,
};
use sshkeys::PublicKeyKind;
use ssi_dids::did_resolve::{
DIDResolver, DocumentMetadata, ResolutionInputMetadata, ResolutionMetadata, ERROR_INVALID_DID,
Expand Down Expand Up @@ -51,25 +47,51 @@ fn parse_pubkeys_gpg(
let mut did_urls = Vec::new();
let mut vm_maps = Vec::new();

let ppr = PacketParser::from_bytes(&bytes)?;
for certo in CertParser::from(ppr) {
let cert = certo?;
let (vm_map, did_url) = gpg_pk_to_vm(did, cert)?;
let pks = SignedPublicKey::from_armor_many(Cursor::new(bytes))?
.0
.collect::<Result<Vec<_>, _>>()?;
for pk in pks {
let (vm_map, did_url) = gpg_pk_to_vm(did, pk)?;
vm_maps.push(vm_map);
did_urls.push(did_url);
}

Ok((vm_maps, did_urls))
}

fn gpg_pk_to_vm(did: &str, cert: Cert) -> Result<(VerificationMethodMap, DIDURL)> {
fn gpg_pk_to_vm(did: &str, pk: SignedPublicKey) -> Result<(VerificationMethodMap, DIDURL)> {
let fingerprint = pk
.fingerprint()
.iter()
.fold(String::new(), |acc, &x| format!("{}{:02X}", acc, x));
let vm_url = DIDURL {
did: did.to_string(),
fragment: Some(cert.fingerprint().to_string()),
fragment: Some(fingerprint.clone()),
..Default::default()
};

let armored_pgp = String::from_utf8(cert.armored().to_vec()?)?;
// For compatibility with sequoia-openpgp
// Note that the output still won't be identical because sequoia uses the new style of CTB whilst rpgp doesn't
let mut header = {
let mut res = String::new();
let l = fingerprint.len();
for (i, b) in fingerprint.chars().enumerate() {
if i > 0 && i % 4 == 0 {
res.push(' ');
if i * 2 == l {
res.push(' ');
}
}
res.push(b);
}
res
};
if let Some(user) = pk.details.users.get(0) {
// Workaround to have the same key multiple times (`Comment`)
header = format!("{}\nComment: {}", header, user.id.id());
}
let headers = BTreeMap::from([("Comment".to_string(), header)]);
let armored_pgp = pk.to_armored_string(Some(&headers))?;

let vm_map = VerificationMethodMap {
id: vm_url.to_string(),
Expand Down Expand Up @@ -464,7 +486,7 @@ mod tests {
shutdown().ok();
}

#[tokio::test]
#[test_log::test(tokio::test)]
async fn from_did_webkey_gpg() {
let did_url: &str = "https://localhost/user.gpg";
let pubkeys: &str = include_str!("../tests/user.gpg");
Expand Down Expand Up @@ -498,28 +520,27 @@ mod tests {
{
"controller": "did:webkey:gpg:localhost:user.gpg",
"id": "did:webkey:gpg:localhost:user.gpg#0CEE8B84B25C0A3C554A9EC1F8FEE972E2A1D935",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: 0CEE 8B84 B25C 0A3C 554A 9EC1 F8FE E972 E2A1 D935\nComment: Foobar <foobar@example.org>\n\nxsDNBGHd5zYBDACok9Z9LWeWMz5mWFytZ/V9KS7Rc4Sqyovzsn1lFuJetowU/iNe\nKUsV2MyniRASuQKro7Csnzms6NM8zjCJvVXaB9BVyTAXNyiVvN2L0Fe1UC2OFBpl\nC8Ik+X57CgGVwADVfICR1kAzskTVduBG8n4hvVa3j06Ce8i2Yj0NgJvXkGDEO6Ai\nywz9PrKqBy1lx+xtJZOavyp020/53WFB/QlQgyysS+jDhdrR2kCXoKlVgBmaiR1c\nG0wMQP4fPEozhx/GTyMnWJqUD7lsoDqC3JCjYis5+S7J7n7xMloc7d0gdk3dyg1W\nqfW4LX/xnN9XUWtv5sFpycUG2USu/VB8f642HN6Y9GAcXGzR6Uu/MQeFrbIW+kvV\nKj7iBlhrzEw3cjctDqlcG+3VH9Cg3F4I34cfGZ4jas/uTyjNlwAzBPKMyAGZIkz+\nqTBhp2r+NAa12wj+IM2ALbDfgZHOFjP1qOnZnTehuO7niR4zpXzxDLTeoe93pCTf\nazThzmKU9VCT86EAEQEAAc0bRm9vYmFyIDxmb29iYXJAZXhhbXBsZS5vcmc+wsEO\nBBMBCAA4FiEEDO6LhLJcCjxVSp7B+P7pcuKh2TUFAmHd5zYCGwMFCwkIBwIGFQoJ\nCAsCBBYCAwECHgECF4AACgkQ+P7pcuKh2TUJRQv/bwjZAb07Ky7AiTqV3LXFJWbT\nZvt+o6CTlrjKpo/hSyaW4tPDKYI2AMnbPdrI3YwCDSytg8neLfKwmHjaShyfEWDz\nql3q8ejoQwkqlhSDnk1dJgW7fK/Yr8Hio3YLDnaAOAw4UvJdJnQEH3Bg0LWSSm6M\nXw1I9QJ++/iVob4GP/rUs9F7bnhTK6Svltz4cMHuC0LxAPyHzlXDE07hlV+lsC9p\nDmm0xdfAxF2kLV6Wld+IrtV5xT3/XUbcO8nvDj2LbCmCzNi65w01HU1I0MwYLytA\nzSEQdL7fg63DRc+GUY15dEDnuIo/vnzRWihPuyjk35f/J8OPEYKNf9c/JDqNTa4D\nQ6ARmy0fMRAXRocnwHY2eYEc9O3xDG8cvrbUXYxi7NANHPC5WCcTY6AoVHiHJ92C\njqBux0jCvaS1Ei/YKGBhoGNiXvjU4ozuPSmuncCAPoAfOgRqi0zh46ve2pIBihtY\nLFiGaXeTU89m1hMpFp0vf0V25HuTfCVlTIuoZsl6zsDNBGHd5zYBDACvwG5PFj/A\nFVk5+eSSHk0eWbW0WD0eS5jnt+TpfiJRr+et/4/a6pUalKCMQeK0WaT4DtYC8Bcs\nAqRHnwFeFDxiW0hBuIPwKN8Wmxkp7b/9oLPHNJQMflkMhboilriFccC0KDiE7DOP\n+5MiXqBFFtSaHeEfZwLZDinIeLBBHftqOVYQQ+zhuI9g9sr8zp0o/KCWuiTaaG9w\n7uDsC6uZhNM1k/uAY8Tnm30CGCVZa8wenmzvnlQvTp51gMK8S1phgepBcjr8jWzP\nfxTrs18vsXAZd7pRoW4EyuzJ6MZkw7p8/D2eVpOuE1Gl/aOiGf+X+nQuyf9bCUTG\nKf3RyT9+hmolOhYMUCOrIzL6zEHG8ydxYodYrmIfA85e4XODYpp9nkCQ8avYqoC9\nWC13Tlezn/RzCyyB/bmX2dXGj12XlBD3ZgJuck/Ub9a9smoZ5QswfIUfmZNc46NX\nP0AYAM55D6u+cW6J/1EVamRbPc3SyBCfzdM8Wo0A3ahq6eInCcs3HIEAEQEAAcLA\n9gQYAQgAIBYhBAzui4SyXAo8VUqewfj+6XLiodk1BQJh3ec2AhsMAAoJEPj+6XLi\nodk1+uEL/3yeXZNvCuEWC3QsIyJ2vRRgf4S9wLnDel+tewXDTVWAZ2usR6MyXuXb\nzZ52/PBNIzDIlHiuFMIbbA99sjF3LO8/DJD32pqtOydUAqIhP1DJzIU9X1Pt82QJ\nn748B2TaUzq3QeZQClD3xdvL+fZWVBcC/P713IbYWLU4W6oeVAEn3OGgwwDMlJVF\nDMzsByDIy6GpAF/yImWPrLWaQ8O3jgNVfjXruLGl2Ex6i+L7uplR3pLnw3Jp/ATv\nxi5xXgrHSlhfSKj/Mo04B6Fp9/kcuiTdRnRKUl0AAJ+LS9t8OQHtL8VVi/UAe1c2\nIowyRj3FGp1OD9Mc8ojOSIbEWUhdl5HWflY1BCcgmCn5Ep1RUn8vD9UUJJAnG4BT\nYUXzzB+9K5Xx7ITgYolrhro8SYSjobnORuSmZDBtXepcq0Vt99OIpY4jftniezxk\n9pad/AdnA7hYNYmlmFr/KwjhOPCTkv7dczjznbZw6V8DmQM4KXGnbO0cD6EIzXns\n2YdBRVOAnw==\n=4Vh8\n-----END PGP PUBLIC KEY BLOCK-----\n",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: 0CEE 8B84 B25C 0A3C 554A 9EC1 F8FE E972 E2A1 D935\nComment: Foobar <foobar@example.org>\n\n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\n2YdBRVOAnw==\n=A/sJ\n-----END PGP PUBLIC KEY BLOCK-----\n",
"type": "PgpVerificationKey2021"
},
{
"controller": "did:webkey:gpg:localhost:user.gpg",
"id": "did:webkey:gpg:localhost:user.gpg#6BABBD68A84D5FE3CEEB986EB77927AE619B8EB6",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: 6BAB BD68 A84D 5FE3 CEEB 986E B779 27AE 619B 8EB6\nComment: Foobar <foobar@example.org>\n\nxlIEYd3nnBMIKoZIzj0DAQcCAwRhnJmDiD35LzJXstn4zBMfpavUCSkYzyJKIYHe\nOwW4BFe+AF/ZdczzJnx8O1xndvYOFccVNAz7HMb7xPB7MDcEzRtGb29iYXIgPGZv\nb2JhckBleGFtcGxlLm9yZz7CkAQTEwgAOBYhBGurvWioTV/jzuuYbrd5J65hm462\nBQJh3eecAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELd5J65hm462BNgB\nAKzxt0M3BpEGlAGjz4czrWX8zRdo6XiKeby5yeORfKDEAP4uOuIwE9ics9XICXUg\n1IZhOVNB2cUS6p7Q5ApaqwE3Wc5WBGHd55wSCCqGSM49AwEHAgMEN0OVHjy6Pwyp\nfTci+EKIc486T1EGeYBs/1FErq3bB44Vqr3EsOcdscSqyj3dcxXb47d0kOkiDPKm\nKTy/6ZPWsAMBCAfCeAQYEwgAIBYhBGurvWioTV/jzuuYbrd5J65hm462BQJh3eec\nAhsMAAoJELd5J65hm462KTsA/3vbivQARQMsZfGKptW/SVaKwszMQm2SE+jOESoH\ntk3MAQCjUD7O3CzMX2rCDgLBLh6hwgB3zjn8uaHM1zO9Z48HhQ==\n=Erc7\n-----END PGP PUBLIC KEY BLOCK-----\n",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: 6BAB BD68 A84D 5FE3 CEEB 986E B779 27AE 619B 8EB6\nComment: Foobar <foobar@example.org>\n\nmFIEYd3nnBMIKoZIzj0DAQcCAwRhnJmDiD35LzJXstn4zBMfpavUCSkYzyJKIYHe\nOwW4BFe+AF/ZdczzJnx8O1xndvYOFccVNAz7HMb7xPB7MDcEtBtGb29iYXIgPGZv\nb2JhckBleGFtcGxlLm9yZz6IkAQTEwgAOBYhBGurvWioTV/jzuuYbrd5J65hm462\nBQJh3eecAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJELd5J65hm462BNgB\nAKzxt0M3BpEGlAGjz4czrWX8zRdo6XiKeby5yeORfKDEAP4uOuIwE9ics9XICXUg\n1IZhOVNB2cUS6p7Q5ApaqwE3WbhWBGHd55wSCCqGSM49AwEHAgMEN0OVHjy6Pwyp\nfTci+EKIc486T1EGeYBs/1FErq3bB44Vqr3EsOcdscSqyj3dcxXb47d0kOkiDPKm\nKTy/6ZPWsAMBCAeIeAQYEwgAIBYhBGurvWioTV/jzuuYbrd5J65hm462BQJh3eec\nAhsMAAoJELd5J65hm462KTsA/3vbivQARQMsZfGKptW/SVaKwszMQm2SE+jOESoH\ntk3MAQCjUD7O3CzMX2rCDgLBLh6hwgB3zjn8uaHM1zO9Z48HhQ==\n=97RS\n-----END PGP PUBLIC KEY BLOCK-----\n",
"type": "PgpVerificationKey2021"
},
{
"controller": "did:webkey:gpg:localhost:user.gpg",
"id": "did:webkey:gpg:localhost:user.gpg#DCB1FF1899328C0EBB5DF07BD41BBBD1FE58006E",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: DCB1 FF18 9932 8C0E BB5D F07B D41B BBD1 FE58 006E\nComment: Foobar <foobar@example.org>\n\nxjMEYd3nyxYJKwYBBAHaRw8BAQdAp756gWZbZB66yTjjn52DyUvCxUgFG7aSKqYY\n7KG2KvDNG0Zvb2JhciA8Zm9vYmFyQGV4YW1wbGUub3JnPsKQBBMWCAA4FiEE3LH/\nGJkyjA67XfB71Bu70f5YAG4FAmHd58sCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC\nF4AACgkQ1Bu70f5YAG7IMQD7BEg3vAqinv1wllBpXfQov7b4+haxcADWXgmc+06D\nx1QBAMWd6Oa71iKafJKKL3Vgk5q/Sns5+xDvMJmcGbMemckMzjgEYd3nyxIKKwYB\nBAGXVQEFAQEHQECEkuj4GJuUKC0nKvyXoEA1DxJPnASFt2GPC0trMcMoAwEIB8J4\nBBgWCAAgFiEE3LH/GJkyjA67XfB71Bu70f5YAG4FAmHd58sCGwwACgkQ1Bu70f5Y\nAG6eUAEA8vwHBMR4ownA069pQ2EqGhueMoU7YQX0IQBosDf7NrMBAJCoLmuc2dGQ\nT4/C2SFSd3mgOqJXpumOyBFj6hoYkyAI\n=LgN5\n-----END PGP PUBLIC KEY BLOCK-----\n",
"publicKeyPgp": "-----BEGIN PGP PUBLIC KEY BLOCK-----\nComment: DCB1 FF18 9932 8C0E BB5D F07B D41B BBD1 FE58 006E\nComment: Foobar <foobar@example.org>\n\nmDMEYd3nyxYJKwYBBAHaRw8BAQdAp756gWZbZB66yTjjn52DyUvCxUgFG7aSKqYY\n7KG2KvC0G0Zvb2JhciA8Zm9vYmFyQGV4YW1wbGUub3JnPoiQBBMWCAA4FiEE3LH/\nGJkyjA67XfB71Bu70f5YAG4FAmHd58sCGwMFCwkIBwIGFQoJCAsCBBYCAwECHgEC\nF4AACgkQ1Bu70f5YAG7IMQD7BEg3vAqinv1wllBpXfQov7b4+haxcADWXgmc+06D\nx1QBAMWd6Oa71iKafJKKL3Vgk5q/Sns5+xDvMJmcGbMemckMuDgEYd3nyxIKKwYB\nBAGXVQEFAQEHQECEkuj4GJuUKC0nKvyXoEA1DxJPnASFt2GPC0trMcMoAwEIB4h4\nBBgWCAAgFiEE3LH/GJkyjA67XfB71Bu70f5YAG4FAmHd58sCGwwACgkQ1Bu70f5Y\nAG6eUAEA8vwHBMR4ownA069pQ2EqGhueMoU7YQX0IQBosDf7NrMBAJCoLmuc2dGQ\nT4/C2SFSd3mgOqJXpumOyBFj6hoYkyAI\n=gMz4\n-----END PGP PUBLIC KEY BLOCK-----\n",
"type": "PgpVerificationKey2021"
}
]
});

let doc = doc_opt.unwrap();
let doc_value = serde_json::to_value(doc).unwrap();
eprintln!("doc {}", serde_json::to_string_pretty(&doc_value).unwrap());
assert_eq!(doc_value, value_expected);
pretty_assertions::assert_eq!(doc_value, value_expected);
PROXY.with(|proxy| {
proxy.replace(None);
});
Expand Down
3 changes: 0 additions & 3 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,3 @@ pub use vc::revocation;
pub use ssi_jwk::aleo;

pub const USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION"));

#[cfg(any(feature = "k256", feature = "p256"))]
pub use ssi_crypto::hashes::passthrough_digest;
1 change: 1 addition & 0 deletions ssi-caips/src/caip10.rs
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ mod tests {
assert_eq!(account_id_old.to_string(), dummy_max_length);
}

#[cfg(feature = "tezos")]
#[test]
fn verify() {
use serde_json::json;
Expand Down
Loading

0 comments on commit bd244df

Please sign in to comment.