aries_cloudagent.vc.ld_proofs.suites package

Submodules

aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020 module

BbsBlsSignature2020 class.

class aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020.BbsBlsSignature2020(*, key_pair: aries_cloudagent.vc.ld_proofs.crypto.key_pair.KeyPair, proof: dict = None, verification_method: str = None, date: Optional[datetime.datetime] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020_base.BbsBlsSignature2020Base

BbsBlsSignature2020 class.

create_proof(*, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → dict[source]

Create proof for document, return proof.

sign(*, verify_data: List[bytes], proof: dict) → dict[source]

Sign the data and add it to the proof.

Parameters:
  • verify_data (List[bytes]) – The data to sign.
  • proof (dict) – The proof to add the signature to
Returns:

The proof object with the added signature

Return type:

dict

signature_type = 'BbsBlsSignature2020'
verify_proof(*, proof: dict, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → aries_cloudagent.vc.ld_proofs.validation_result.ProofResult[source]

Verify proof against document and proof purpose.

verify_signature(*, verify_data: List[bytes], verification_method: dict, document: dict, proof: dict, document_loader: Callable[[str, dict], dict]) → bool[source]

Verify the data against the proof.

Parameters:
  • verify_data (bytes) – The data to check
  • verification_method (dict) – The verification method to use.
  • document (dict) – The document the verify data is derived for as extra context
  • proof (dict) – The proof to check
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

Whether the signature is valid for the data

Return type:

bool

aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020_base module

BbsBlsSignature2020Base class.

class aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020_base.BbsBlsSignature2020Base(*, signature_type: str, proof: dict = None, supported_derive_proof_types: Optional[List[str]] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.linked_data_proof.LinkedDataProof

Base class for BbsBlsSignature suites.

BBS_SUPPORTED = False

aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_proof_2020 module

BbsBlsSignatureProof2020 class.

class aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_proof_2020.BbsBlsSignatureProof2020(*, key_pair: aries_cloudagent.vc.ld_proofs.crypto.key_pair.KeyPair)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.bbs_bls_signature_2020_base.BbsBlsSignature2020Base

BbsBlsSignatureProof2020 class.

derive_proof(*, proof: dict, document: dict, reveal_document: dict, document_loader: Callable[[str, dict], dict], nonce: bytes = None)[source]

Derive proof for document, return dict with derived document and proof.

signature_type = 'BbsBlsSignatureProof2020'
supported_derive_proof_types = ['BbsBlsSignature2020', 'sec:BbsBlsSignature2020', 'https://w3id.org/security#BbsBlsSignature2020']
verify_proof(*, proof: dict, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → aries_cloudagent.vc.ld_proofs.validation_result.ProofResult[source]

Verify proof against document and proof purpose.

aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2018 module

Ed25519Signature2018 suite.

class aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2018.Ed25519Signature2018(*, key_pair: aries_cloudagent.vc.ld_proofs.crypto.key_pair.KeyPair, proof: dict = None, verification_method: str = None, date: Union[datetime.datetime, str] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.jws_linked_data_signature.JwsLinkedDataSignature

Ed25519Signature2018 suite.

signature_type = 'Ed25519Signature2018'

aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2020 module

Ed25519Signature2018 suite.

class aries_cloudagent.vc.ld_proofs.suites.ed25519_signature_2020.Ed25519Signature2020(*, key_pair: aries_cloudagent.vc.ld_proofs.crypto.key_pair.KeyPair, proof: dict = None, verification_method: str = None, date: Union[datetime.datetime, str] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.linked_data_signature.LinkedDataSignature

Ed25519Signature2020 suite.

sign(*, verify_data: bytes, proof: dict) → dict[source]

Sign the data and add it to the proof.

Parameters:
  • verify_data (List[bytes]) – The data to sign.
  • proof (dict) – The proof to add the signature to
Returns:

The proof object with the added signature

Return type:

dict

signature_type = 'Ed25519Signature2020'
verify_signature(*, verify_data: List[bytes], verification_method: dict, document: dict, proof: dict, document_loader: Callable[[str, dict], dict]) → bool[source]

Verify the data against the proof.

Parameters:
  • verify_data (bytes) – The data to check
  • verification_method (dict) – The verification method to use.
  • document (dict) – The document the verify data is derived for as extra context
  • proof (dict) – The proof to check
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

Whether the signature is valid for the data

Return type:

bool

aries_cloudagent.vc.ld_proofs.suites.jws_linked_data_signature module

JWS Linked Data class.

class aries_cloudagent.vc.ld_proofs.suites.jws_linked_data_signature.JwsLinkedDataSignature(*, signature_type: str, algorithm: str, required_key_type: str, key_pair: aries_cloudagent.vc.ld_proofs.crypto.key_pair.KeyPair, proof: dict = None, verification_method: str = None, date: Union[datetime.datetime, str] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.linked_data_signature.LinkedDataSignature

JWS Linked Data class.

sign(*, verify_data: bytes, proof: dict) → dict[source]

Sign the data and add it to the proof.

Adds a jws to the proof that can be used for multiple signature algorithms.

Parameters:
  • verify_data (bytes) – The data to sign.
  • proof (dict) – The proof to add the signature to
Returns:

The proof object with the added signature

Return type:

dict

verify_signature(*, verify_data: bytes, verification_method: dict, document: dict, proof: dict, document_loader: Callable[[str, dict], dict])[source]

Verify the data against the proof.

Checks for a jws on the proof.

Parameters:
  • verify_data (bytes) – The data to check
  • verification_method (dict) – The verification method to use.
  • document (dict) – The document the verify data is derived for as extra context
  • proof (dict) – The proof to check
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

Whether the signature is valid for the data

Return type:

bool

aries_cloudagent.vc.ld_proofs.suites.linked_data_proof module

Abstract base class for linked data proofs.

class aries_cloudagent.vc.ld_proofs.suites.linked_data_proof.DeriveProofResult(*args, **kwargs)[source]

Bases: sphinx.ext.autodoc.importer._MockObject

Result dict for deriving a proof.

class aries_cloudagent.vc.ld_proofs.suites.linked_data_proof.LinkedDataProof(*, signature_type: str, proof: dict = None, supported_derive_proof_types: Optional[List[str]] = None)[source]

Bases: abc.ABC

Base Linked data proof.

create_proof(*, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → dict[source]

Create proof for document.

Parameters:
  • document (dict) – The document to create the proof for
  • purpose (ProofPurpose) – The proof purpose to include in the proof
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

The proof object

Return type:

dict

derive_proof(*, proof: dict, document: dict, reveal_document: dict, document_loader: Callable[[str, dict], dict], nonce: bytes = None) → aries_cloudagent.vc.ld_proofs.suites.linked_data_proof.DeriveProofResult[source]

Derive proof for document, returning derived document and proof.

Parameters:
  • proof (dict) – The proof to derive from
  • document (dict) – The document to derive the proof for
  • reveal_document (dict) – The JSON-LD frame the revealed attributes
  • document_loader (DocumentLoader) – Document loader used for resolving
  • nonce (bytes, optional) – Nonce to use for the proof. Defaults to None.
Returns:

The derived document and proof

Return type:

DeriveProofResult

match_proof(signature_type: str) → bool[source]

Match signature type to signature type of this suite.

verify_proof(*, proof: dict, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → aries_cloudagent.vc.ld_proofs.validation_result.ProofResult[source]

Verify proof against document and proof purpose.

Parameters:
  • proof (dict) – The proof to verify
  • document (dict) – The document to verify the proof against
  • purpose (ProofPurpose) – The proof purpose to verify the proof against
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

The results of the proof verification

Return type:

ValidationResult

aries_cloudagent.vc.ld_proofs.suites.linked_data_signature module

Linked Data Signature class.

class aries_cloudagent.vc.ld_proofs.suites.linked_data_signature.LinkedDataSignature(*, signature_type: str, proof: dict = None, verification_method: str = None, date: Optional[datetime.datetime] = None)[source]

Bases: aries_cloudagent.vc.ld_proofs.suites.linked_data_proof.LinkedDataProof

Linked Data Signature class.

create_proof(*, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → dict[source]

Create proof for document, return proof.

sign(*, verify_data: bytes, proof: dict) → dict[source]

Sign the data and add it to the proof.

Parameters:
  • verify_data (bytes) – The data to sign.
  • proof (dict) – The proof to add the signature to
Returns:

The proof object with the added signature

Return type:

dict

verify_proof(*, proof: dict, document: dict, purpose: aries_cloudagent.vc.ld_proofs.purposes.proof_purpose.ProofPurpose, document_loader: Callable[[str, dict], dict]) → aries_cloudagent.vc.ld_proofs.validation_result.ProofResult[source]

Verify proof against document and proof purpose.

verify_signature(*, verify_data: bytes, verification_method: dict, document: dict, proof: dict, document_loader: Callable[[str, dict], dict]) → bool[source]

Verify the data against the proof.

Parameters:
  • verify_data (bytes) – The data to check
  • verification_method (dict) – The verification method to use.
  • document (dict) – The document the verify data is derived for as extra context
  • proof (dict) – The proof to check
  • document_loader (DocumentLoader) – Document loader used for resolving
Returns:

Whether the signature is valid for the data

Return type:

bool