mirror of
https://github.com/selfxyz/self.git
synced 2026-04-27 03:01:15 -04:00
implement vc_and_disclose circuit in iOS app
This commit is contained in:
@@ -10,4 +10,5 @@
|
||||
#include "witnesscalc_register_rsa_65537_sha256.h"
|
||||
#include "witnesscalc_register_rsa_65537_sha1.h"
|
||||
#include "witnesscalc_register_rsapss_65537_sha256.h"
|
||||
#include "witnesscalc_vc_and_disclose.h"
|
||||
#include "groth16_prover.h"
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
|
||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||
163754792CBDD4BB008AE334 /* libwitnesscalc_vc_and_disclose.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 163754782CBDD4AB008AE334 /* libwitnesscalc_vc_and_disclose.a */; };
|
||||
165E76BD2B8DC4A00000FA90 /* MRZScannerModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 165E76BC2B8DC4A00000FA90 /* MRZScannerModule.swift */; };
|
||||
165E76BF2B8DC53A0000FA90 /* MRZScannerModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 165E76BE2B8DC53A0000FA90 /* MRZScannerModule.m */; };
|
||||
165E76C32B8DC8370000FA90 /* ScannerHostingController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 165E76C22B8DC8370000FA90 /* ScannerHostingController.swift */; };
|
||||
@@ -97,6 +98,7 @@
|
||||
13B07FB51A68108700A75B9A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = OpenPassport/Images.xcassets; sourceTree = "<group>"; };
|
||||
13B07FB61A68108700A75B9A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = OpenPassport/Info.plist; sourceTree = "<group>"; };
|
||||
13B07FB71A68108700A75B9A /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = OpenPassport/main.m; sourceTree = "<group>"; };
|
||||
163754782CBDD4AB008AE334 /* libwitnesscalc_vc_and_disclose.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libwitnesscalc_vc_and_disclose.a; sourceTree = "<group>"; };
|
||||
165E76BC2B8DC4A00000FA90 /* MRZScannerModule.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MRZScannerModule.swift; sourceTree = "<group>"; };
|
||||
165E76BE2B8DC53A0000FA90 /* MRZScannerModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MRZScannerModule.m; sourceTree = "<group>"; };
|
||||
165E76C22B8DC8370000FA90 /* ScannerHostingController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScannerHostingController.swift; sourceTree = "<group>"; };
|
||||
@@ -127,6 +129,7 @@
|
||||
files = (
|
||||
0573C4F42C754600006C7386 /* libwitnesscalc_prove_rsa_65537_sha1.a in Frameworks */,
|
||||
05D985F52BB331AB00F58EEA /* libgmp.a in Frameworks */,
|
||||
163754792CBDD4BB008AE334 /* libwitnesscalc_vc_and_disclose.a in Frameworks */,
|
||||
167D93492C91D2A300530E6B /* libwitnesscalc_register_rsa_65537_sha256.a in Frameworks */,
|
||||
167D93472C91B1E100530E6B /* libwitnesscalc_register_rsapss_65537_sha256.a in Frameworks */,
|
||||
0569F35F2BBC98D5006670BD /* libfq.a in Frameworks */,
|
||||
@@ -208,6 +211,7 @@
|
||||
2D16E6871FA4F8E400B85C8A /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
163754782CBDD4AB008AE334 /* libwitnesscalc_vc_and_disclose.a */,
|
||||
167D93482C91D28500530E6B /* libwitnesscalc_register_rsa_65537_sha256.a */,
|
||||
167D93422C91AE0F00530E6B /* libwitnesscalc_register_rsa_65537_sha1.a */,
|
||||
167D93432C91AE0F00530E6B /* libwitnesscalc_register_rsapss_65537_sha256.a */,
|
||||
|
||||
@@ -41,6 +41,10 @@ import witnesscalc_register_rsa_65537_sha1
|
||||
import witnesscalc_register_rsapss_65537_sha256
|
||||
#endif
|
||||
|
||||
#if canImport(witnesscalc_vc_and_disclose)
|
||||
import witnesscalc_vc_and_disclose
|
||||
#endif
|
||||
|
||||
#if canImport(groth16_prover)
|
||||
import groth16_prover
|
||||
#endif
|
||||
@@ -183,9 +187,14 @@ private func _calcWtns(witness_calculator: String, dat: Data, jsonData: Data) th
|
||||
wtnsBuffer, wtnsSize,
|
||||
errorBuffer, errorSize
|
||||
)
|
||||
}
|
||||
|
||||
else {
|
||||
} else if witness_calculator == "vc_and_disclose" {
|
||||
result = witnesscalc_vc_and_disclose(
|
||||
(dat as NSData).bytes, datSize,
|
||||
(jsonData as NSData).bytes, jsonDataSize,
|
||||
wtnsBuffer, wtnsSize,
|
||||
errorBuffer, errorSize
|
||||
)
|
||||
} else {
|
||||
fatalError("Invalid witness calculator name")
|
||||
}
|
||||
|
||||
|
||||
BIN
app/ios/libwitnesscalc_vc_and_disclose.a
Normal file
BIN
app/ios/libwitnesscalc_vc_and_disclose.a
Normal file
Binary file not shown.
@@ -1,5 +1,5 @@
|
||||
#ifndef WITNESSCALC_disclose_H
|
||||
#define WITNESSCALC_disclose_H
|
||||
#ifndef WITNESSCALC_vc_and_disclose_H
|
||||
#define WITNESSCALC_vc_and_disclose_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -25,7 +25,7 @@ extern "C" {
|
||||
*/
|
||||
|
||||
int
|
||||
witnesscalc_disclose(
|
||||
witnesscalc_vc_and_disclose(
|
||||
const char *circuit_buffer, unsigned long circuit_size,
|
||||
const char *json_buffer, unsigned long json_size,
|
||||
char *wtns_buffer, unsigned long *wtns_size,
|
||||
@@ -36,4 +36,4 @@ witnesscalc_disclose(
|
||||
#endif
|
||||
|
||||
|
||||
#endif // WITNESSCALC_disclose_H
|
||||
#endif // WITNESSCALC_vc_and_disclose_H
|
||||
@@ -11,12 +11,14 @@ const zkeyZipUrls = {
|
||||
prove_rsapss_65537_sha256: "https://d8o9bercqupgk.cloudfront.net/staging/prove_rsapss_65537_sha256.zkey.zip",
|
||||
// register_sha256WithRSAEncryption_65537: "https://d8o9bercqupgk.cloudfront.net/staging/register_sha256WithRSAEncryption_65537_csca2.zkey.zip",
|
||||
// disclose: "https://d8o9bercqupgk.cloudfront.net/staging/disclose3.zkey.zip",
|
||||
vc_and_disclose: "https://d8o9bercqupgk.cloudfront.net/staging/vc_and_disclose.zkey.zip",
|
||||
};
|
||||
|
||||
const datZipUrls = {
|
||||
prove_rsa_65537_sha256: "https://d8o9bercqupgk.cloudfront.net/staging/prove_rsa_65537_sha256.dat.zip",
|
||||
prove_rsa_65537_sha1: "https://d8o9bercqupgk.cloudfront.net/staging/prove_rsa_65537_sha1.dat.zip",
|
||||
prove_rsapss_65537_sha256: "https://d8o9bercqupgk.cloudfront.net/staging/prove_rsapss_65537_sha256.dat.zip",
|
||||
vc_and_disclose: "https://d8o9bercqupgk.cloudfront.net/staging/vc_and_disclose.dat.zip",
|
||||
};
|
||||
|
||||
export type CircuitName = keyof typeof zkeyZipUrls;
|
||||
|
||||
@@ -57,9 +57,9 @@ install(TARGETS
|
||||
witnesscalc_register_rsapss_65537_sha256
|
||||
witnesscalc_register_rsapss_65537_sha256Static
|
||||
|
||||
# disclose
|
||||
# witnesscalc_disclose
|
||||
# witnesscalc_discloseStatic
|
||||
# vc_and_disclose
|
||||
witnesscalc_vc_and_disclose
|
||||
witnesscalc_vc_and_discloseStatic
|
||||
|
||||
# register_sha256WithRSAEncryption_65537
|
||||
# witnesscalc_register_sha256WithRSAEncryption_65537
|
||||
@@ -77,7 +77,7 @@ install(FILES "${GMP_LIB_DIR}/${GMP_LIB_FILE}"
|
||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
|
||||
|
||||
install(FILES
|
||||
# src/disclose.dat
|
||||
src/vc_and_disclose.dat
|
||||
# src/register_sha256WithRSAEncryption_65537.dat
|
||||
src/prove_rsa_65537_sha256.dat
|
||||
src/prove_rsa_65537_sha1.dat
|
||||
@@ -90,7 +90,7 @@ install(FILES
|
||||
|
||||
install(FILES
|
||||
src/witnesscalc.h
|
||||
# src/witnesscalc_disclose.h
|
||||
src/witnesscalc_vc_and_disclose.h
|
||||
# src/witnesscalc_register_sha256WithRSAEncryption_65537.h
|
||||
src/witnesscalc_prove_rsa_65537_sha256.h
|
||||
src/witnesscalc_prove_rsa_65537_sha1.h
|
||||
|
||||
@@ -102,23 +102,23 @@ set(LIB_SOURCES
|
||||
# target_compile_definitions(register_sha256WithRSAEncryption_65537 PUBLIC CIRCUIT_NAME=register_sha256WithRSAEncryption_65537)
|
||||
|
||||
|
||||
# disclose
|
||||
# set(disclose_SOURCES ${LIB_SOURCES}
|
||||
# disclose.cpp
|
||||
# witnesscalc_disclose.h
|
||||
# witnesscalc_disclose.cpp
|
||||
# )
|
||||
# vc_and_disclose
|
||||
set(vc_and_disclose_SOURCES ${LIB_SOURCES}
|
||||
vc_and_disclose.cpp
|
||||
witnesscalc_vc_and_disclose.h
|
||||
witnesscalc_vc_and_disclose.cpp
|
||||
)
|
||||
|
||||
# add_library(witnesscalc_disclose SHARED ${disclose_SOURCES})
|
||||
# add_library(witnesscalc_discloseStatic STATIC ${disclose_SOURCES})
|
||||
# set_target_properties(witnesscalc_discloseStatic PROPERTIES OUTPUT_NAME witnesscalc_disclose)
|
||||
add_library(witnesscalc_vc_and_disclose SHARED ${vc_and_disclose_SOURCES})
|
||||
add_library(witnesscalc_vc_and_discloseStatic STATIC ${vc_and_disclose_SOURCES})
|
||||
set_target_properties(witnesscalc_vc_and_discloseStatic PROPERTIES OUTPUT_NAME witnesscalc_vc_and_disclose)
|
||||
|
||||
# add_executable(disclose main.cpp)
|
||||
# target_link_libraries(disclose witnesscalc_discloseStatic)
|
||||
add_executable(vc_and_disclose main.cpp)
|
||||
target_link_libraries(vc_and_disclose witnesscalc_vc_and_discloseStatic)
|
||||
|
||||
# target_compile_definitions(witnesscalc_disclose PUBLIC CIRCUIT_NAME=disclose)
|
||||
# target_compile_definitions(witnesscalc_discloseStatic PUBLIC CIRCUIT_NAME=disclose)
|
||||
# target_compile_definitions(disclose PUBLIC CIRCUIT_NAME=disclose)
|
||||
target_compile_definitions(witnesscalc_vc_and_disclose PUBLIC CIRCUIT_NAME=vc_and_disclose)
|
||||
target_compile_definitions(witnesscalc_vc_and_discloseStatic PUBLIC CIRCUIT_NAME=vc_and_disclose)
|
||||
target_compile_definitions(vc_and_disclose PUBLIC CIRCUIT_NAME=vc_and_disclose)
|
||||
|
||||
|
||||
|
||||
|
||||
1824576
app/witnesscalc/src/vc_and_disclose.cpp
Normal file
1824576
app/witnesscalc/src/vc_and_disclose.cpp
Normal file
File diff suppressed because it is too large
Load Diff
BIN
app/witnesscalc/src/vc_and_disclose.dat
Normal file
BIN
app/witnesscalc/src/vc_and_disclose.dat
Normal file
Binary file not shown.
@@ -1,15 +0,0 @@
|
||||
#include "witnesscalc_disclose.h"
|
||||
#include "witnesscalc.h"
|
||||
|
||||
int
|
||||
witnesscalc_disclose(
|
||||
const char *circuit_buffer, unsigned long circuit_size,
|
||||
const char *json_buffer, unsigned long json_size,
|
||||
char *wtns_buffer, unsigned long *wtns_size,
|
||||
char *error_msg, unsigned long error_msg_maxsize)
|
||||
{
|
||||
return CIRCUIT_NAME::witnesscalc(circuit_buffer, circuit_size,
|
||||
json_buffer, json_size,
|
||||
wtns_buffer, wtns_size,
|
||||
error_msg, error_msg_maxsize);
|
||||
}
|
||||
14
app/witnesscalc/src/witnesscalc_vc_and_disclose.cpp
Normal file
14
app/witnesscalc/src/witnesscalc_vc_and_disclose.cpp
Normal file
@@ -0,0 +1,14 @@
|
||||
#include "witnesscalc_vc_and_disclose.h"
|
||||
#include "witnesscalc.h"
|
||||
|
||||
int witnesscalc_vc_and_disclose(
|
||||
const char *circuit_buffer, unsigned long circuit_size,
|
||||
const char *json_buffer, unsigned long json_size,
|
||||
char *wtns_buffer, unsigned long *wtns_size,
|
||||
char *error_msg, unsigned long error_msg_maxsize)
|
||||
{
|
||||
return CIRCUIT_NAME::witnesscalc(circuit_buffer, circuit_size,
|
||||
json_buffer, json_size,
|
||||
wtns_buffer, wtns_size,
|
||||
error_msg, error_msg_maxsize);
|
||||
}
|
||||
39
app/witnesscalc/src/witnesscalc_vc_and_disclose.h
Normal file
39
app/witnesscalc/src/witnesscalc_vc_and_disclose.h
Normal file
@@ -0,0 +1,39 @@
|
||||
#ifndef WITNESSCALC_vc_and_disclose_H
|
||||
#define WITNESSCALC_vc_and_disclose_H
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#define WITNESSCALC_OK 0x0
|
||||
#define WITNESSCALC_ERROR 0x1
|
||||
#define WITNESSCALC_ERROR_SHORT_BUFFER 0x2
|
||||
|
||||
/**
|
||||
*
|
||||
* @return error code:
|
||||
* WITNESSCALC_OK - in case of success.
|
||||
* WITNESSCALC_ERROR - in case of an error.
|
||||
*
|
||||
* On success wtns_buffer is filled with witness data and
|
||||
* wtns_size contains the number bytes copied to wtns_buffer.
|
||||
*
|
||||
* If wtns_buffer is too small then the function returns WITNESSCALC_ERROR_SHORT_BUFFER
|
||||
* and the minimum size for wtns_buffer in wtns_size.
|
||||
*
|
||||
*/
|
||||
|
||||
int
|
||||
witnesscalc_vc_and_disclose(
|
||||
const char *circuit_buffer, unsigned long circuit_size,
|
||||
const char *json_buffer, unsigned long json_size,
|
||||
char *wtns_buffer, unsigned long *wtns_size,
|
||||
char *error_msg, unsigned long error_msg_maxsize);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
#endif // WITNESSCALC_vc_and_disclose_H
|
||||
Reference in New Issue
Block a user