From d8a47bb361a54d56aab9dca3c8297c73fc6e67e1 Mon Sep 17 00:00:00 2001 From: blu3beri Date: Mon, 24 Apr 2023 12:52:07 +0200 Subject: [PATCH 1/2] chore: update version Signed-off-by: blu3beri --- Cargo.toml | 2 +- wrappers/javascript/anoncreds-nodejs/package.json | 6 +++--- wrappers/javascript/anoncreds-react-native/package.json | 6 +++--- wrappers/javascript/anoncreds-shared/package.json | 2 +- wrappers/javascript/lerna.json | 2 +- wrappers/python/anoncreds/version.py | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 1620be8e..73e27f09 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "anoncreds" -version = "0.1.0-dev.14" +version = "0.1.0-dev.15" authors = ["Hyperledger AnonCreds Contributors "] description = "Verifiable credential issuance and presentation for Hyperledger AnonCreds (https://www.hyperledger.org/projects), which provides a foundation for self-sovereign identity." edition = "2021" diff --git a/wrappers/javascript/anoncreds-nodejs/package.json b/wrappers/javascript/anoncreds-nodejs/package.json index 628bac49..7f0c9208 100644 --- a/wrappers/javascript/anoncreds-nodejs/package.json +++ b/wrappers/javascript/anoncreds-nodejs/package.json @@ -1,6 +1,6 @@ { "name": "@hyperledger/anoncreds-nodejs", - "version": "0.1.0-dev.14", + "version": "0.1.0-dev.15", "license": "Apache-2.0", "description": "Nodejs wrapper for Anoncreds", "main": "build/index", @@ -26,7 +26,7 @@ "install": "node-pre-gyp install --target_arch=$(node scripts/arch.js)" }, "dependencies": { - "@hyperledger/anoncreds-shared": "0.1.0-dev.14", + "@hyperledger/anoncreds-shared": "0.1.0-dev.15", "@mapbox/node-pre-gyp": "^1.0.10", "ffi-napi": "4.0.3", "node-cache": "5.1.2", @@ -45,7 +45,7 @@ "binary": { "module_name": "anoncreds", "module_path": "native", - "remote_path": "v0.1.0-dev.14", + "remote_path": "v0.1.0-dev.15", "host": "https://github.com/hyperledger/anoncreds-rs/releases/download/", "package_name": "library-{platform}-{arch}.tar.gz" } diff --git a/wrappers/javascript/anoncreds-react-native/package.json b/wrappers/javascript/anoncreds-react-native/package.json index 35728066..61350826 100644 --- a/wrappers/javascript/anoncreds-react-native/package.json +++ b/wrappers/javascript/anoncreds-react-native/package.json @@ -1,6 +1,6 @@ { "name": "@hyperledger/anoncreds-react-native", - "version": "0.1.0-dev.14", + "version": "0.1.0-dev.15", "license": "Apache-2.0", "description": "React Native wrapper for Anoncreds", "main": "build/index", @@ -35,7 +35,7 @@ "install": "node-pre-gyp install" }, "dependencies": { - "@hyperledger/anoncreds-shared": "0.1.0-dev.14", + "@hyperledger/anoncreds-shared": "0.1.0-dev.15", "@mapbox/node-pre-gyp": "^1.0.10" }, "devDependencies": { @@ -52,7 +52,7 @@ "binary": { "module_name": "anoncreds", "module_path": "native", - "remote_path": "v0.1.0-dev.14", + "remote_path": "v0.1.0-dev.15", "host": "https://github.com/hyperledger/anoncreds-rs/releases/download/", "package_name": "library-ios-android.tar.gz" } diff --git a/wrappers/javascript/anoncreds-shared/package.json b/wrappers/javascript/anoncreds-shared/package.json index 2fa6348b..b4df50df 100644 --- a/wrappers/javascript/anoncreds-shared/package.json +++ b/wrappers/javascript/anoncreds-shared/package.json @@ -1,6 +1,6 @@ { "name": "@hyperledger/anoncreds-shared", - "version": "0.1.0-dev.14", + "version": "0.1.0-dev.15", "license": "Apache-2.0", "description": "Anoncreds wrapper library with NodeJS and React Native", "main": "build/index", diff --git a/wrappers/javascript/lerna.json b/wrappers/javascript/lerna.json index 56946ea7..af6740bd 100644 --- a/wrappers/javascript/lerna.json +++ b/wrappers/javascript/lerna.json @@ -1,5 +1,5 @@ { - "version": "0.1.0-dev.14", + "version": "0.1.0-dev.15", "useWorkspaces": true, "npmClient": "yarn", "command": { diff --git a/wrappers/python/anoncreds/version.py b/wrappers/python/anoncreds/version.py index fba584d6..e58b737a 100644 --- a/wrappers/python/anoncreds/version.py +++ b/wrappers/python/anoncreds/version.py @@ -1,3 +1,3 @@ """anoncreds library wrapper version.""" -__version__ = "0.1.0.dev14" +__version__ = "0.1.0.dev15" From 2aa774266a08e965abb1296623224922fe710087 Mon Sep 17 00:00:00 2001 From: blu3beri Date: Mon, 24 Apr 2023 13:05:57 +0200 Subject: [PATCH 2/2] fix(python): link secret is string Signed-off-by: blu3beri --- wrappers/python/anoncreds/__init__.py | 5 ++--- wrappers/python/anoncreds/bindings.py | 20 ++++++++--------- wrappers/python/anoncreds/types.py | 31 ++++++--------------------- wrappers/python/demo/test.py | 6 ++---- 4 files changed, 20 insertions(+), 42 deletions(-) diff --git a/wrappers/python/anoncreds/__init__.py b/wrappers/python/anoncreds/__init__.py index c9106c80..c86a2b85 100644 --- a/wrappers/python/anoncreds/__init__.py +++ b/wrappers/python/anoncreds/__init__.py @@ -1,6 +1,6 @@ """Anoncreds Python wrapper library""" -from .bindings import encode_credential_attributes, generate_nonce, library_version +from .bindings import encode_credential_attributes, generate_nonce, library_version, create_link_secret from .error import AnoncredsError, AnoncredsErrorCode from .types import ( Credential, @@ -12,7 +12,6 @@ CredentialOffer, CredentialRequest, CredentialRequestMetadata, - LinkSecret, NonrevokedIntervalOverride, PresentationRequest, Presentation, @@ -25,6 +24,7 @@ ) __all__ = ( + "create_link_secret", "encode_credential_attributes", "generate_nonce", "library_version", @@ -39,7 +39,6 @@ "CredentialOffer", "CredentialRequest", "CredentialRequestMetadata", - "LinkSecret", "NonrevokedIntervalOverride", "PresentationRequest", "Presentation", diff --git a/wrappers/python/anoncreds/bindings.py b/wrappers/python/anoncreds/bindings.py index cf644faf..7b868975 100644 --- a/wrappers/python/anoncreds/bindings.py +++ b/wrappers/python/anoncreds/bindings.py @@ -707,7 +707,7 @@ def encode_credential_attributes( def process_credential( cred: ObjectHandle, cred_req_metadata: ObjectHandle, - link_secret: ObjectHandle, + link_secret: str, cred_def: ObjectHandle, rev_reg_def: Optional[ObjectHandle], ) -> ObjectHandle: @@ -716,7 +716,7 @@ def process_credential( "anoncreds_process_credential", cred, cred_req_metadata, - link_secret, + encode_str(link_secret), cred_def, rev_reg_def or ObjectHandle(), byref(result), @@ -741,7 +741,7 @@ def create_credential_request( entropy: Optional[str], prover_did: Optional[str], cred_def: ObjectHandle, - link_secret: ObjectHandle, + link_secret: str, link_secret_id: str, cred_offer: ObjectHandle, ) -> Tuple[ObjectHandle, ObjectHandle]: @@ -751,7 +751,7 @@ def create_credential_request( encode_str(entropy), encode_str(prover_did), cred_def, - link_secret, + encode_str(link_secret), encode_str(link_secret_id), cred_offer, byref(cred_req), @@ -760,13 +760,13 @@ def create_credential_request( return (cred_req, cred_req_metadata) -def create_link_secret() -> ObjectHandle: - secret = ObjectHandle() +def create_link_secret() -> str: + result = StrBuffer() do_call( "anoncreds_create_link_secret", - byref(secret), + byref(result), ) - return secret + return str(result) def create_presentation( @@ -774,7 +774,7 @@ def create_presentation( credentials: Sequence[CredentialEntry], credentials_prove: Sequence[CredentialProve], self_attest: Optional[Mapping[str, str]], - link_secret: ObjectHandle, + link_secret: str, schemas: Sequence[ObjectHandle], schema_ids: Sequence[str], cred_defs: Sequence[ObjectHandle], @@ -795,7 +795,7 @@ def create_presentation( prove_list, FfiStrList.create(self_attest.keys() if self_attest else None), FfiStrList.create(self_attest.values() if self_attest else None), - link_secret, + encode_str(link_secret), FfiObjectHandleList.create(schemas), FfiStrList.create(schema_ids), FfiObjectHandleList.create(cred_defs), diff --git a/wrappers/python/anoncreds/types.py b/wrappers/python/anoncreds/types.py index 4204aa3a..e34b98e8 100644 --- a/wrappers/python/anoncreds/types.py +++ b/wrappers/python/anoncreds/types.py @@ -2,7 +2,6 @@ from . import bindings - class CredentialDefinition(bindings.AnoncredsObject): GET_ATTR = "anoncreds_credential_definition_get_attribute" @@ -109,21 +108,19 @@ def create( entropy: Optional[str], prover_did: Optional[str], cred_def: Union[str, CredentialDefinition], - link_secret: Union[str, "LinkSecret"], + link_secret: str, link_secret_id: str, cred_offer: Union[str, CredentialOffer], ) -> Tuple["CredentialRequest", "CredentialRequestMetadata"]: if not isinstance(cred_def, bindings.AnoncredsObject): cred_def = CredentialDefinition.load(cred_def) - if not isinstance(link_secret, bindings.AnoncredsObject): - link_secret = LinkSecret.load(link_secret) if not isinstance(cred_offer, bindings.AnoncredsObject): cred_offer = CredentialOffer.load(cred_offer) cred_def_handle, cred_def_metadata = bindings.create_credential_request( entropy, prover_did, cred_def.handle, - link_secret.handle, + link_secret, link_secret_id, cred_offer.handle, ) @@ -147,18 +144,6 @@ def load( ) ) - -class LinkSecret(bindings.AnoncredsObject): - @classmethod - def create(cls) -> "LinkSecret": - return LinkSecret(bindings.create_link_secret()) - - @classmethod - def load(cls, value: Union[dict, str, bytes, memoryview]) -> "LinkSecret": - return LinkSecret( - bindings._object_from_json("anoncreds_link_secret_from_json", value) - ) - class RevocationRegistryDefinition(bindings.AnoncredsObject): GET_ATTR = "anoncreds_revocation_registry_definition_get_attribute" @@ -293,14 +278,12 @@ def create( def process( self, cred_req_metadata: Union[str, CredentialRequestMetadata], - link_secret: Union[str, LinkSecret], + link_secret: str, cred_def: Union[str, CredentialDefinition], rev_reg_def: Optional[Union[str, "RevocationRegistryDefinition"]] = None, ) -> "Credential": if not isinstance(cred_req_metadata, bindings.AnoncredsObject): cred_req_metadata = CredentialRequestMetadata.load(cred_req_metadata) - if not isinstance(link_secret, bindings.AnoncredsObject): - link_secret = LinkSecret.load(link_secret) if not isinstance(cred_def, bindings.AnoncredsObject): cred_def = CredentialDefinition.load(cred_def) if rev_reg_def and not isinstance(rev_reg_def, bindings.AnoncredsObject): @@ -309,7 +292,7 @@ def process( bindings.process_credential( self.handle, cred_req_metadata.handle, - link_secret.handle, + link_secret, cred_def.handle, rev_reg_def.handle if rev_reg_def else None, ) @@ -431,14 +414,12 @@ def create( pres_req: Union[str, PresentationRequest], present_creds: PresentCredentials, self_attest: Optional[Mapping[str, str]], - link_secret: Union[str, LinkSecret], + link_secret: str, schemas: Mapping[str, Union[str, Schema]], cred_defs: Mapping[str, Union[str, CredentialDefinition]], ) -> "Presentation": if not isinstance(pres_req, bindings.AnoncredsObject): pres_req = PresentationRequest.load(pres_req) - if not isinstance(link_secret, bindings.AnoncredsObject): - link_secret = LinkSecret.load(link_secret) schema_ids = list(schemas.keys()) cred_def_ids = list(cred_defs.keys()) schema_handles = [ @@ -479,7 +460,7 @@ def create( creds, creds_prove, self_attest or {}, - link_secret.handle, + link_secret, schema_handles, schema_ids, cred_def_handles, diff --git a/wrappers/python/demo/test.py b/wrappers/python/demo/test.py index 0dbe85e3..a2a325bf 100644 --- a/wrappers/python/demo/test.py +++ b/wrappers/python/demo/test.py @@ -2,6 +2,7 @@ from anoncreds import ( generate_nonce, + create_link_secret, Credential, CredentialDefinition, CredentialOffer, @@ -11,7 +12,6 @@ PresentationRequest, Presentation, PresentCredentials, - LinkSecret, RevocationRegistryDefinition, RevocationStatusList, NonrevokedIntervalOverride, @@ -54,7 +54,7 @@ True ) -link_secret = LinkSecret.create() +link_secret = create_link_secret() link_secret_id = "default" cred_offer = CredentialOffer.create( @@ -267,8 +267,6 @@ rev_status_lists, ) -print(verified) - assert not verified print("ok")