Skip to content

Commit

Permalink
export RevocationRegistryDefinitionPrivate as a local struct (#6)
Browse files Browse the repository at this point in the history
Signed-off-by: conanoc <[email protected]>
  • Loading branch information
conanoc authored Nov 23, 2023
1 parent 1b31293 commit 2178e8d
Show file tree
Hide file tree
Showing 4 changed files with 47 additions and 17 deletions.
27 changes: 26 additions & 1 deletion Sources/Anoncreds/anoncreds_uniffi.swift
Original file line number Diff line number Diff line change
Expand Up @@ -1637,7 +1637,9 @@ public func FfiConverterTypeRevocationRegistryDefinition_lower(_ value: Revocati
return FfiConverterTypeRevocationRegistryDefinition.lower(value)
}

public protocol RevocationRegistryDefinitionPrivateProtocol {}
public protocol RevocationRegistryDefinitionPrivateProtocol {
func toJson() -> String
}

public class RevocationRegistryDefinitionPrivate: RevocationRegistryDefinitionPrivateProtocol {
fileprivate let pointer: UnsafeMutableRawPointer
Expand All @@ -1649,9 +1651,26 @@ public class RevocationRegistryDefinitionPrivate: RevocationRegistryDefinitionPr
self.pointer = pointer
}

public convenience init(json: String) throws {
try self.init(unsafeFromRawPointer: rustCallWithError(FfiConverterTypeErrorCode.lift) {
uniffi_anoncreds_uniffi_fn_constructor_revocationregistrydefinitionprivate_new(
FfiConverterString.lower(json), $0
)
})
}

deinit {
try! rustCall { uniffi_anoncreds_uniffi_fn_free_revocationregistrydefinitionprivate(pointer, $0) }
}

public func toJson() -> String {
return try! FfiConverterString.lift(
try!
rustCall {
uniffi_anoncreds_uniffi_fn_method_revocationregistrydefinitionprivate_to_json(self.pointer, $0)
}
)
}
}

public struct FfiConverterTypeRevocationRegistryDefinitionPrivate: FfiConverter {
Expand Down Expand Up @@ -2974,6 +2993,9 @@ private var initializationResult: InitializationResult {
if uniffi_anoncreds_uniffi_checksum_method_revocationregistrydefinition_to_json() != 31175 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_anoncreds_uniffi_checksum_method_revocationregistrydefinitionprivate_to_json() != 37971 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_anoncreds_uniffi_checksum_method_revocationregistrydelta_to_json() != 15053 {
return InitializationResult.apiChecksumMismatch
}
Expand Down Expand Up @@ -3040,6 +3062,9 @@ private var initializationResult: InitializationResult {
if uniffi_anoncreds_uniffi_checksum_constructor_revocationregistrydefinition_new() != 3510 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_anoncreds_uniffi_checksum_constructor_revocationregistrydefinitionprivate_new() != 53969 {
return InitializationResult.apiChecksumMismatch
}
if uniffi_anoncreds_uniffi_checksum_constructor_revocationregistrydelta_new() != 59759 {
return InitializationResult.apiChecksumMismatch
}
Expand Down
5 changes: 2 additions & 3 deletions anoncreds/src/lib.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
mod uffi;
use anoncreds::types::RevocationRegistryDefinitionPrivate;
use uffi::issuer::Issuer;
use uffi::prover::Prover;
use uffi::types::{
Credential, CredentialDefinition, CredentialDefinitionPrivate, CredentialKeyCorrectnessProof,
CredentialOffer, CredentialRequest, CredentialRequestMetadata, CredentialRevocationState,
Presentation, PresentationRequest, RevocationRegistryDefinition, RevocationRegistryDelta,
RevocationStatusList, Schema,
Presentation, PresentationRequest, RevocationRegistryDefinition,
RevocationRegistryDefinitionPrivate, RevocationRegistryDelta, RevocationStatusList, Schema,
};
use uffi::verifier::Verifier;

Expand Down
13 changes: 6 additions & 7 deletions anoncreds/src/uffi/issuer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ use super::error::ErrorCode;
use super::types::{
Credential, CredentialDefinition, CredentialDefinitionPrivate, CredentialDefinitionTuple,
CredentialKeyCorrectnessProof, CredentialOffer, CredentialRequest, CredentialRevocationConfig,
RevocationRegistryDefinition, RevocationRegistryDefinitionTuple, RevocationStatusList, Schema,
RevocationRegistryDefinition, RevocationRegistryDefinitionPrivate,
RevocationRegistryDefinitionTuple, RevocationStatusList, Schema,
};
use anoncreds::data_types::{cred_def::SignatureType, rev_reg_def::RegistryType};
use anoncreds::issuer::{
Expand All @@ -11,9 +12,7 @@ use anoncreds::issuer::{
update_revocation_status_list,
};
use anoncreds::tails::TailsFileWriter;
use anoncreds::types::{
CredentialDefinitionConfig, MakeCredentialValues, RevocationRegistryDefinitionPrivate,
};
use anoncreds::types::{CredentialDefinitionConfig, MakeCredentialValues};
use std::collections::BTreeSet;
use std::collections::HashMap;
use std::sync::Arc;
Expand Down Expand Up @@ -112,7 +111,7 @@ impl Issuer {
)?;
Ok(RevocationRegistryDefinitionTuple {
rev_reg_def: Arc::new(RevocationRegistryDefinition(rev_reg_def)),
rev_reg_def_priv: Arc::new(rev_reg_def_private),
rev_reg_def_priv: Arc::new(RevocationRegistryDefinitionPrivate(rev_reg_def_private)),
})
}

Expand All @@ -131,7 +130,7 @@ impl Issuer {
.try_into()
.map_err(|err| anoncreds::Error::from(err))?,
&rev_reg_def.0,
&rev_reg_priv,
&rev_reg_priv.0,
issuance_by_default,
timestamp,
)?;
Expand All @@ -153,7 +152,7 @@ impl Issuer {
let rev_status_list = update_revocation_status_list(
&cred_def.0,
&rev_reg_def.0,
&rev_reg_priv,
&rev_reg_priv.0,
&current_list.0,
issued,
revoked,
Expand Down
19 changes: 13 additions & 6 deletions anoncreds/src/uffi/types.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ use anoncreds::types::{
CredentialRevocationState as RustCredentialRevocationState, Presentation as RustPresentation,
PresentationRequest as RustPresentationRequest,
RevocationRegistryDefinition as RustRevocationRegistryDefinition,
RevocationRegistryDefinitionPrivate,
RevocationRegistryDefinitionPrivate as RustRevocationRegistryDefinitionPrivate,
};
use anoncreds_clsignatures::RevocationRegistryDelta as RustRevocationRegistryDelta;
use std::collections::HashMap;
Expand Down Expand Up @@ -175,7 +175,7 @@ impl<'a> From<&'a CredentialRevocationConfig> for RustCredentialRevocationConfig
fn from(revocation_config: &'a CredentialRevocationConfig) -> Self {
RustCredentialRevocationConfig {
reg_def: &revocation_config.reg_def.0,
reg_def_private: &revocation_config.reg_def_private,
reg_def_private: &revocation_config.reg_def_private.0,
status_list: &revocation_config.status_list.0,
registry_idx: revocation_config.registry_index,
}
Expand Down Expand Up @@ -240,9 +240,9 @@ macro_rules! define_serializable_struct {
impl $struct_name {
#[uniffi::constructor]
pub fn new(json: String) -> Result<Arc<Self>, ErrorCode> {
Ok(Arc::new(Self(serde_json::from_str::<
$rust_struct_name,
>(&json)?)))
Ok(Arc::new(Self(serde_json::from_str::<$rust_struct_name>(
&json,
)?)))
}

pub fn to_json(&self) -> String {
Expand All @@ -253,11 +253,18 @@ macro_rules! define_serializable_struct {
}

define_serializable_struct!(CredentialDefinitionPrivate, RustCredentialDefinitionPrivate);
define_serializable_struct!(CredentialKeyCorrectnessProof, RustCredentialKeyCorrectnessProof);
define_serializable_struct!(
CredentialKeyCorrectnessProof,
RustCredentialKeyCorrectnessProof
);
define_serializable_struct!(CredentialRequest, RustCredentialRequest);
define_serializable_struct!(CredentialRequestMetadata, RustCredentialRequestMetadata);
define_serializable_struct!(RevocationRegistryDelta, RustRevocationRegistryDelta);
define_serializable_struct!(CredentialRevocationState, RustCredentialRevocationState);
define_serializable_struct!(RevocationStatusList, RustRevocationStatusList);
define_serializable_struct!(PresentationRequest, RustPresentationRequest);
define_serializable_struct!(Presentation, RustPresentation);
define_serializable_struct!(
RevocationRegistryDefinitionPrivate,
RustRevocationRegistryDefinitionPrivate
);

0 comments on commit 2178e8d

Please sign in to comment.