macro_rules! vectors {
($($(#[$doc:meta])* $name:ident = $path:literal;)*) => {
$(
$(#[$doc])*
pub const $name: &str = include_str!(concat!("../tests/vectors/", $path));
)*
};
}
pub mod sd_jwt {
pub mod simple {
vectors! {
USER_CLAIMS = "sd_jwt/simple/user_claims.json";
PAYLOAD = "sd_jwt/simple/payload.json";
DISCLOSURES = "sd_jwt/simple/disclosures.txt";
JWS = "sd_jwt/simple/jws.txt";
ISSUANCE = "sd_jwt/simple/issuance.txt";
PRESENTATION = "sd_jwt/simple/presentation.txt";
KB_PAYLOAD = "sd_jwt/simple/kb_payload.json";
VERIFIED = "sd_jwt/simple/verified.json";
}
}
pub mod flat {
vectors! {
PAYLOAD = "sd_jwt/flat/payload.json";
DISCLOSURES = "sd_jwt/flat/disclosures.txt";
}
}
pub mod structured {
vectors! {
PAYLOAD = "sd_jwt/structured/payload.json";
PAYLOAD_ONE_OPEN = "sd_jwt/structured/payload_one_open.json";
DISCLOSURES = "sd_jwt/structured/disclosures.txt";
}
}
pub mod recursive {
vectors! {
PAYLOAD = "sd_jwt/recursive/payload.json";
DISCLOSURES = "sd_jwt/recursive/disclosures.txt";
}
}
pub mod simple_structured {
vectors! {
USER_CLAIMS = "sd_jwt/simple_structured/user_claims.json";
PAYLOAD = "sd_jwt/simple_structured/payload.json";
DISCLOSURES = "sd_jwt/simple_structured/disclosures.txt";
DECOYS = "sd_jwt/simple_structured/decoys.txt";
PRESENTATION = "sd_jwt/simple_structured/presentation.txt";
VERIFIED = "sd_jwt/simple_structured/verified.json";
}
}
pub mod complex_ekyc {
vectors! {
USER_CLAIMS = "sd_jwt/complex_ekyc/user_claims.json";
PAYLOAD = "sd_jwt/complex_ekyc/payload.json";
DISCLOSURES = "sd_jwt/complex_ekyc/disclosures.txt";
PRESENTATION = "sd_jwt/complex_ekyc/presentation.txt";
VERIFIED = "sd_jwt/complex_ekyc/verified.json";
}
}
pub mod sd_jwt_vc {
vectors! {
USER_CLAIMS = "sd_jwt/sd_jwt_vc/user_claims.json";
PAYLOAD = "sd_jwt/sd_jwt_vc/payload.json";
DISCLOSURES = "sd_jwt/sd_jwt_vc/disclosures.txt";
ISSUANCE = "sd_jwt/sd_jwt_vc/issuance.txt";
PRESENTATION = "sd_jwt/sd_jwt_vc/presentation.txt";
KB_PAYLOAD = "sd_jwt/sd_jwt_vc/kb_payload.json";
VERIFIED = "sd_jwt/sd_jwt_vc/verified.json";
}
}
pub mod w3c_vcdm {
vectors! {
USER_CLAIMS = "sd_jwt/w3c_vcdm/user_claims.json";
PAYLOAD = "sd_jwt/w3c_vcdm/payload.json";
DISCLOSURES = "sd_jwt/w3c_vcdm/disclosures.txt";
ISSUANCE = "sd_jwt/w3c_vcdm/issuance.txt";
PRESENTATION = "sd_jwt/w3c_vcdm/presentation.txt";
VERIFIED = "sd_jwt/w3c_vcdm/verified.json";
}
}
}
pub mod sd_jwt_vc {
pub mod identity_credential {
vectors! {
USER_CLAIMS = "sd_jwt_vc/identity_credential/user_claims.json";
PAYLOAD = "sd_jwt_vc/identity_credential/payload.json";
DISCLOSURES = "sd_jwt_vc/identity_credential/disclosures.txt";
ISSUANCE = "sd_jwt_vc/identity_credential/issuance.txt";
PRESENTATION = "sd_jwt_vc/identity_credential/presentation.txt";
VERIFIED = "sd_jwt_vc/identity_credential/verified.json";
PRESENTATION_NO_KB = "sd_jwt_vc/identity_credential/presentation_no_kb.txt";
VERIFIED_NO_KB = "sd_jwt_vc/identity_credential/verified_no_kb.json";
}
}
pub mod pid {
vectors! {
PAYLOAD = "sd_jwt_vc/pid/payload.json";
DISCLOSURES = "sd_jwt_vc/pid/disclosures.txt";
ISSUANCE = "sd_jwt_vc/pid/issuance.txt";
PRESENTATION = "sd_jwt_vc/pid/presentation.txt";
KB_PAYLOAD = "sd_jwt_vc/pid/kb_payload.json";
VERIFIED = "sd_jwt_vc/pid/verified.json";
}
}
}
pub mod type_metadata {
vectors! {
EDUCATION_CREDENTIAL_V42 = "type_metadata/education_credential_v42.json";
EDUCATION_CREDENTIAL = "type_metadata/education_credential.json";
PAYLOAD = "type_metadata/payload.json";
}
}
pub mod status_list {
vectors! {
LIST_1BIT = "status_list/list_1bit.json";
LIST_2BIT = "status_list/list_2bit.json";
TOKEN = "status_list/token.txt";
TOKEN_HEADER = "status_list/token_header.json";
TOKEN_PAYLOAD = "status_list/token_payload.json";
REFERENCED_HEADER = "status_list/referenced_header.json";
REFERENCED_PAYLOAD = "status_list/referenced_payload.json";
REFERENCED_SD_JWT = "status_list/referenced_sd_jwt.txt";
REFERENCED_PROCESSED = "status_list/referenced_processed.json";
C1_1BIT = "status_list/c1_1bit.json";
C1_1BIT_STATUSES = "status_list/c1_1bit_statuses.json";
C2_2BIT = "status_list/c2_2bit.json";
C2_2BIT_STATUSES = "status_list/c2_2bit_statuses.json";
C3_4BIT = "status_list/c3_4bit.json";
C3_4BIT_STATUSES = "status_list/c3_4bit_statuses.json";
C4_8BIT = "status_list/c4_8bit.json";
C4_8BIT_STATUSES = "status_list/c4_8bit_statuses.json";
}
}
pub mod did_configuration {
vectors! {
RESOURCE = "did_configuration/resource.json";
LINKED_DATA_CREDENTIAL = "did_configuration/linked_data_credential.json";
JWT = "did_configuration/jwt.txt";
HEADER = "did_configuration/header.json";
PAYLOAD = "did_configuration/payload.json";
}
}