Implement sd+jwt
Issuance and Verification protocols for sd+jwt, tests and demo working with cloud agent.
Implement new derivation paths
Refactor the DerivationPath internally to now support different derivationSchemas which we can extend in a future, always keeps backwards compatibility between the old and new paths
Fixes and improvements
Making all the disclosable for UI
Helps user interface have a better experience by providing a simple function users can call to disclose any kind of credential claims that the EdgeAgent supports.
Allow Apollo to create Public and PrismDIDPublicKeys and make other building blocks agnostic (castor, pollux)
As we move towards separating the Agent from its core functionality even further with abstractions, some work is required to ensure domain separation between the different building blocks.
Castor was importing Secp256k1 from Apollo to create Secp256k1 keys, instead it will now call the Apollo function to createPublicKeys, prismDIDPublicKeys on demand. That benefits Castor and Pollux now.
Add secp256k1 signature DER to raw normalisation
Apollo is currently creating DER signatures for Secp256K1 and while this is not wrong the Cloud Agent will not be able to verify the signatures correctly.
We simply add 2 normalization functions in Secp256K1 PrivateKey and PublicKey, so that in case a DER signature is provided on verifying or signing it will automatically convert it. Apollo should probably fix this
BREAKING CHANGE:
Pollux instance now requires to have Apollo first constructor parameter (used internally)
Deprecated internal function processJWTCredential, processAnoncredsCredential and extractCredentialFormatFromMessage. Internally, in order to process any type of credential offer just call pollux.processCredentialOffer instead. In order to extract the credentialFormat from a DIDComm message if available, use message.credentialFormat (will return known CredentialType or unknown) In order to extract the payload of whatever DIDComm message, use message.payload which will decode it into the right object instance
JWT class now needs apollo and castor in constructor as they now instantiate from JWTCore (used internally)
Derivable Private key is not deriving using the derivationPath as a string not the DerivationPath class (used internally)
Description:
Features
Implement sd+jwt Issuance and Verification protocols for sd+jwt, tests and demo working with cloud agent.
Implement new derivation paths Refactor the DerivationPath internally to now support different derivationSchemas which we can extend in a future, always keeps backwards compatibility between the old and new paths
Fixes and improvements
Making all the disclosable for UI Helps user interface have a better experience by providing a simple function users can call to disclose any kind of credential claims that the EdgeAgent supports.
Allow Apollo to create Public and PrismDIDPublicKeys and make other building blocks agnostic (castor, pollux) As we move towards separating the Agent from its core functionality even further with abstractions, some work is required to ensure domain separation between the different building blocks.
Castor was importing Secp256k1 from Apollo to create Secp256k1 keys, instead it will now call the Apollo function to createPublicKeys, prismDIDPublicKeys on demand. That benefits Castor and Pollux now.
We simply add 2 normalization functions in Secp256K1 PrivateKey and PublicKey, so that in case a DER signature is provided on verifying or signing it will automatically convert it. Apollo should probably fix this
BREAKING CHANGE:
Checklist: