Giter VIP home page Giter VIP logo

libgroupsig's Introduction

libgroupsig

Welcome to libgroupsig, an extensible library for group signatures. Below, you can find basic information about how to build the library. For more detailed information on building it (the core and its wrappers), using it, contributing and more, please check the wiki out.

Build

To build the library, run the following commands.

mkdir build
cd build
cmake ..
make

Install

To install the library, run the commands in build. Then, run:

make install

Note: You may require to run the previous command as super user.

Tests and coverage

mkdir build
cd build
cmake -DUSE_GTEST=ON -DUSE_GCOV=ON ..
make && make test && make coverage

(Note: To build with debug flags, add the -DCMAKE_BUILD_TYPE=Debug modifier to cmake in the prevous sequence of commands.)

Tests can alternatively be run with ctest from the build directory, or with ctest -T memcheck to check memory-related bugs.

libgroupsig's People

Contributors

jdv-ibm avatar jesusdiazvico avatar stevemar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

libgroupsig's Issues

[NodeJS] Reconsider/Remove handler fetching functions

The following functions are probably not needed:

  • get_groupsig_from_str
  • get_groupsig_from_code
  • grp_key_handle_from_code
  • mgr_key_handle_from_code
  • mem_key_handle_from_code
  • bld_key_handle_from_code
  • blindsig_handle_from_code
  • identity_handle_from_code
  • gml_handle_from_code

They are basically there as a "direct" translation from the core library. But in NodeJS we probably don't need them.

Cross-check and, if they are indeed not needed, remove them.

[Core] Redesign Identity export/import

Identities should be exported and imported as the other generic types (group keys, manager keys, member keys...)

Changing this will affect all wrappers.

[PS16] GML implementation

Hi,
I have been testing the GML module, more specificly the export and import functions.

I'm having problems with the import of a GML with more than 1 member:

debug code
#!/usr/bin/env python3

from pygroupsig import constants
from pygroupsig import groupsig
from pygroupsig import gml
# import pdb
# pdb.set_trace()


group = groupsig.setup(constants.PS16_CODE)
print("No members: ", gml.gml_export(group['gml']))

step1_manager = groupsig.join_mgr(0,
                                  group['mgrkey'],
                                  group['grpkey'],
                                  gml=group['gml'])
step2_member = groupsig.join_mem(1,
                                 group['grpkey'],
                                 msgin=step1_manager)
user_memkey_empty = step2_member['memkey']
step3_manager = groupsig.join_mgr(2,
                                  group['mgrkey'],
                                  group['grpkey'],
                                  msgin=step2_member['msgout'],
                                  gml=group['gml'])
step4_member = groupsig.join_mem(3,
                                 group['grpkey'],
                                 msgin=step3_manager,
                                 memkey=user_memkey_empty)

gml_exp = gml.gml_export(group['gml'])
print("One member: ", gml_exp)

gml_imp = gml.gml_import(constants.PS16_CODE, gml_exp)
print("One member import: OK")

group['gml'] = gml_imp

step1_manager = groupsig.join_mgr(0,
                                  group['mgrkey'],
                                  group['grpkey'],
                                  gml=group['gml'])
step2_member = groupsig.join_mem(1,
                                 group['grpkey'],
                                 msgin=step1_manager)
user_memkey_empty = step2_member['memkey']
step3_manager = groupsig.join_mgr(2,
                                  group['mgrkey'],
                                  group['grpkey'],
                                  msgin=step2_member['msgout'],
                                  gml=group['gml'])
step4_member = groupsig.join_mem(3,
                                 group['grpkey'],
                                 msgin=step3_manager,
                                 memkey=user_memkey_empty)

gml_exp = gml.gml_export(group['gml'])
print("Two members: ", gml_exp)

gml_imp = gml.gml_import(constants.PS16_CODE, gml_exp)
print("Two members import: OK")

groupsig.clear(constants.GL19_CODE)

It fails importing the GML after inserting the second member.

No members:  b'AAAAAAAAAAA='
One member:  b'AQAAAAAAAAAAAAAAAAAAADAAAADPYkYi+UfapfCnQeeiN6+b2/eMNQmADJUzoWKKrv2aipyq/xVBguOsvN/JUpq2NJVgAAAAOTO8W7uxD4Co0u/IQQYk8U0G9Vxi5HOIbkdhTFT1+a6harAvxTbWFw7DNCrLGogSmRooEKLRv9HSxwXBFTm8ao2yCI/yska7ENq11xXufIkyw2TgnrcNcglxaYLPhdKUAAAAAA=='
One member import: OK
Two members:  b'AgAAAAAAAAAAAAAAAAAAADAAAADPYkYi+UfapfCnQeeiN6+b2/eMNQmADJUzoWKKrv2aipyq/xVBguOsvN/JUpq2NJVgAAAAOTO8W7uxD4Co0u/IQQYk8U0G9Vxi5HOIbkdhTFT1+a6harAvxTbWFw7DNCrLGogSmRooEKLRv9HSxwXBFTm8ao2yCI/yska7ENq11xXufIkyw2TgnrcNcglxaYLPhdKUAAAAAAEAAAAAAAAAMAAAAI3I0U85g89QBZKAAYGF21s2lE7R/h7bQ8VEeqWV2EyyXxwOB+zqn5LA/00XufIxB2AAAACL6a/OW9IZivBaEscSBPNzmsZPvI0Nd8fFfbaEcUCF6JRt3cb0UcT899o2OYtSNBeIqKxP6cDWEXtiX39zPFxz4/w3PeovUazDPSFB+X1aPDMHJzLTYL6x9BVemMU6RIQAAAAA'
Traceback (most recent call last):
  File "./test.py", line 60, in <module>
    gml_imp = gml.gml_import(constants.PS16_CODE, gml_exp)
  File "/home/schica/auditor/sergio/autoauditor/temp/test/lib/python3.6/site-packages/pygroupsig/gml.py", line 63, in gml_import
    raise Exception('Error importing GML.')
Exception: Error importing GML.

I have looked at the C implementation and got this information:

debug output
[P] No members:  b'AAAAAAAAAAA='
[P] One member:  b'AQAAAAAAAAAAAAAAAAAAADAAAADyv9qdF5CmAi+5pttNwEAd28Qrq7obmfPZ2FATDPUmvgn2H0m52LFWYg7/zi4LzBVgAAAA8osDsI9t+CdifFd128wTIFj82Xd1pfg1qW2ipxcx/CnegfRcugvxV2pCU1vR5CcMPEdJj2XqHfeL16lz0zICp+hcB5DLeQfdo67Step3H3h9zJnQFACizYAt5tZwNb8YAAAAAA=='

[C] gml_size: 172
[C] gml bytes: 0100000000000000000000000000000030000000F2BFDA9D1790A6022FB9A6DB4DC0401DDBC42BABBA1B99F3D9D850130CF526BE09F61F49B9D8B156620EFFCE2E0BCC1560000000F28B03B08F6DF827627C5775DBCC132058FCD97775A5F835A96DA2A71731FC29DE81F45CBA0BF1576A42535BD1E4270C3C47498F65EA1DF78BD7A973D33202A7E85C0790CB7907DDA3AED2B5EA771F787DCC99D01400A2CD802DE6D67035BF1800000000

[C] gml_entries: 1

[C] entry bytes
[C] entry id: 0000000000000000
[C] g1 data: 30000000F2BFDA9D1790A6022FB9A6DB4DC0401DDBC42BABBA1B99F3D9D850130CF526BE09F61F49B9D8B156620EFFCE2E0BCC15
[C] g2 data: 60000000F28B03B08F6DF827627C5775DBCC132058FCD97775A5F835A96DA2A71731FC29DE81F45CBA0BF1576A42535BD1E4270C3C47498F65EA1DF78BD7A973D33202A7E85C0790CB7907DDA3AED2B5EA771F787DCC99D01400A2CD802DE6D67035BF1800000000

[C] entry id: 0
[C] entry id (reserved size): 8
[C] len g1: 52
[C] len g2: 100
[C] entry id=0 size: 152 (160)

[P] One member import: OK

[P] Two members:  b'AgAAAAAAAAAAAAAAAAAAADAAAADyv9qdF5CmAi+5pttNwEAd28Qrq7obmfPZ2FATDPUmvgn2H0m52LFWYg7/zi4LzBVgAAAA8osDsI9t+CdifFd128wTIFj82Xd1pfg1qW2ipxcx/CnegfRcugvxV2pCU1vR5CcMPEdJj2XqHfeL16lz0zICp+hcB5DLeQfdo67Step3H3h9zJnQFACizYAt5tZwNb8YAAAAAAEAAAAAAAAAMAAAAE4QlImbGauEIGSKZeOoKgZarXTdEEbA9mrZvi0ePtO4tkQBiqfXm+oyzLAP2q91DmAAAAAxQaH0XjO9huL0irqwxrU261fIpqSQDmiEyNtGqp69F//2GE8AL6EN8uUKtWONehXpg/Vd4ejrV8yjb0eTCQnLMEg/b2OmS/Q+dZRHVCmAUo3Qmy2ZmtidMlD3S1jc7A4AAAAA'

[C] gml_size: 336
[C] gml_bytes: 0200000000000000000000000000000030000000F2BFDA9D1790A6022FB9A6DB4DC0401DDBC42BABBA1B99F3D9D850130CF526BE09F61F49B9D8B156620EFFCE2E0BCC1560000000F28B03B08F6DF827627C5775DBCC132058FCD97775A5F835A96DA2A71731FC29DE81F45CBA0BF1576A42535BD1E4270C3C47498F65EA1DF78BD7A973D33202A7E85C0790CB7907DDA3AED2B5EA771F787DCC99D01400A2CD802DE6D67035BF18000000000100000000000000300000004E1094899B19AB8420648A65E3A82A065AAD74DD1046C0F66AD9BE2D1E3ED3B8B644018AA7D79BEA32CCB00FDAAF750E600000003141A1F45E33BD86E2F48ABAB0C6B536EB57C8A6A4900E6884C8DB46AA9EBD17FFF6184F002FA10DF2E50AB5638D7A15E983F55DE1E8EB57CCA36F47930909CB30483F6F63A64BF43E759447542980528DD09B2D999AD89D3250F74B58DCEC0E00000000

[C] gml_entries: 2

[C] entry bytes
[C] entry id: 0000000000000000
[C] g1 data: 30000000F2BFDA9D1790A6022FB9A6DB4DC0401DDBC42BABBA1B99F3D9D850130CF526BE09F61F49B9D8B156620EFFCE2E0BCC15
[C] g2 data: 60000000F28B03B08F6DF827627C5775DBCC132058FCD97775A5F835A96DA2A71731FC29DE81F45CBA0BF1576A42535BD1E4270C3C47498F65EA1DF78BD7A973D33202A7E85C0790CB7907DDA3AED2B5EA771F787DCC99D01400A2CD802DE6D67035BF18000000000100000000000000300000004E1094899B19AB8420648A65E3A82A065AAD74DD1046C0F66AD9BE2D1E3ED3B8B644018AA7D79BEA32CCB00FDAAF750E600000003141A1F45E33BD86E2F48ABAB0C6B536EB57C8A6A4900E6884C8DB46AA9EBD17FFF6184F002FA10DF2E50AB5638D7A15E983F55DE1E8EB57CCA36F47930909CB30483F6F63A64BF43E759447542980528DD09B2D999AD89D3250F74B58DCEC0E00000000

[C] entry id: 0
[C] entry id (reserved size): 8
[C] len g1: 52
[C] len g2: 100
[C] entry id=0 size: 152 (160)

[C] entry bytes:
[C] entry id: 802DE6D67035BF18
[C] g1 data: 000000000100000000000000300000004E1094899B19AB8420648A65E3A82A065AAD74DD1046C0F66AD9BE2D1E3ED3B8B644018A
[C] g2 data: A7D79BEA32CCB00FDAAF750E600000003141A1F45E33BD86E2F48ABAB0C6B536EB57C8A6A4900E6884C8DB46AA9EBD17FFF6184F002FA10DF2E50AB5638D7A15E983F55DE1E8EB57CCA36F47930909CB30483F6F63A64BF43E759447542980528DD09B2D999AD89D3250F74B58DCEC0E00000000

[C] entry id: -689558144

Traceback (most recent call last):
  File "../../../../test.py", line 60, in <module>
    gml_imp = gml.gml_import(constants.PS16_CODE, gml_exp)
  File "/home/schica/auditor/sergio/autoauditor/libgroupsig/libgroupsig/pygroupsig/lib/python3.6/site-packages/pygroupsig/gml.py", line 63, in gml_import
    raise Exception('Error importing GML.')
Exception: Error importing GML.

I tried to understand how data is stored in the GML, but I couldn't find the remaining 4 bytes.

First GML: 
Total size: 172 bytes
Entries (n): 8 bytes
Entry (id): 8 bytes
Entry (0): 152 bytes
Missing (padding?): 4 bytes
Second GML:
Total size: 336 bytes
Entries (n): 8 bytes
Entry (id): 8 bytes
Entry (0): 152 bytes
Missing (padding?): 4 bytes
Entry (id): 8 bytes
Entry (1): 152 bytes
Missing (padding?): 4 bytes

I think the problem is caused by these missing bytes, that aren't taken into account when reading the entries from the imported GML, failing after the second entry.
E.g.

0200000000000000 -> 8 bytes (n entries)

0000000000000000 -> 8 bytes (entry id, 0)

30000000D5A8737EE57ACB9C220B6D2030C7CCB0B68DCAA4E7D980E981CD4704337BEE7C4692F711B409E7D270C37AA182231506 --> 52 bytes (G1, 0)

60000000A02C31D6AD87EE311704C6D27A04E05FFEF098010BC1DA86EDE50CDDDAD996B6D3A8EB3C1AF75FFD0645994B54DEE7010B10773435C49B14D1B7AB44C4903F5255DAE85DF2AA5A24C643EF104C9CA88807F7386EB35FAAFBF45C406E4B964411 --> 100 bytes (G2, 0)

00000000 --> 4 bytes (padding, 0)

0100000000000000 --> 8 bytes (entry id, 1)

30000000B1514455EF7ABFF55825EE0864013EB62EE6A8286F141034E5B45C36441BBB779BB7D0144DCF551943347B1953529803 --> 52 bytes (G1, 1)

60000000EB2ECDA1043F2AC07A75AEC7FFC91C10455535D8F930B6DF6A31BF607CC1B5307106B1613368CABB44A93FD4795E3111242218651DBBE20327A61085A11BBF68118AE0338CBB5701A296D9FEFCAF4996F4ED852742F29C44FB2660FEBABA011 --> 52 bytes (G2, 1)

000000000 --> 4 bytes (padding, 1)

[Core] Add benchmark module

A module that allows automating as much as possible running benchmarks of the supported schemes.

This should include producing outputs that can be parsed with Gnuplot or similar tools.

[Documentation] Replace code samples with link to files

Some of the code samples in the documentation are outdated and no longer compile/work.

Replace the code with links to files in the repository, and add tests in the CICD pipeline to make sure they still work properly when pushing changes.

[Wiki] Fix compiler option

I read the wiki and I have some questions.

  • Does it forget the source file of the compiler option?
  • Is the linked library really cml?

Now

gcc -o sign_gl19 -lgroupsig -lcml -Wl,-rpath=/usr/local/lib

I guess

gcc sign_gl19.c -o sign_gl19 -lgroupsig -lmcl -Wl,-rpath=/usr/local/lib

Signature uniqueness... or not

Hi,

The signature generated with the call to groupsig_sign e.g. groupsig_sign(sig, msg, memkey, grpkey, 0); is always different (one sees this when printing it using gl19_signature_to_string) even though as in the case above, msg, memkey and grpkey are fixed. Thus generating a signature with these 3 fixed, generates different signatures each time.

Is it possible with any of the algorithms or functions, to generate a signature where the verifier can detect that the same memkey, msg, and grpkey were used? Maybe the signatures are different when using those 3 fixed values but there is some other way for the verifier to detect that the signatures were generated by the same signer? Or is that fundamentally what makes this crypto system work and if what I ask here were possible it would break the security of this scheme?

Thanks
Donovan

GL19 and GML

Hi,

groupsig_open requires a valid initialized GML, and it looks like in your library only schemes bbs04, ps16 and klap20 have implementations for GML. With scheme GL19 it appears not possible to obtain a GML. Thus with GL19 one cannot call groupsig_open and the identity thus cannot be revealed.

Is this just a gap in your library and you still need to implement this for GL19 or is it the case that scheme GL19 does not allow for obtaining the identity from the GML like with the other schemes?

Thanks

[Java] Can one use the library for mobile development?

Can the core library and Java wrapper be used for Android development? I mean, in theory, you could make that happen by compiling the native code, but then it may not work with the wrapper Java library. Does anyone have any experience with this?

[NodeJS] Add cert field in sample REST server join request

When requesting to join a group, it is common that prospective members add (and prove control of) a certificate from some common PKI.

Add this field to the first message sent by the prospective member, which would be:

Could you help upgrade the vulnerble shared library introduced by package pygroupsig?

Hi, @jdv-ibm , @jesusdiazvico , I'd like to report a vulnerability issue in pygroupsig_1.1.0.

Dependency Graph between Python and Shared Libraries

image

Issue Description

As shown in the above dependency graph (Here shows part of the dependency graph, which depends on vulnerable shared libraries), pygroupsig_1.1.0 directly or transitively depends on 3 C libraries (.so). However, I noticed that some C libraries are vulnerable, containing the following CVEs:
libcrypto-021c2f5b.so.1.1 and libssl-6db5df62.so.1.1from C project openssl(version:1.1.0g) exposed 7 vulnerabilities:
CVE-2019-1543, CVE-2018-0735, CVE-2017-3738, CVE-2020-7043, CVE-2020-7042, CVE-2020-7041, CVE-2019-1552,

Suggested Vulnerability Patch Versions

openssl has fixed the vulnerabilities in versions >=1.1.1c

Python build tools cannot report vulnerable C libraries, which may induce potential security issues to many downstream Python projects.
As a popular python package (pygroupsig has 1,126 downloads per month), could you please upgrade the above shared libraries to their patch versions?

Thanks for your help~
Best regards,
MikeWazowski

[Core] hash_get does not seem correct

The hash_get function should interface the EVP_Digest from OpenSSL (currently, it only does EVP_DigestInit and EVP_DigestUpdate).

Currently, it is not used by any scheme (schemes use the Init-Update-Finalize interface). But check and add tests.

Failed Docker image building

Hi,

I have some difficulties to build the docker image of the Dockerfile located here src/wrappers/nodejs/server/Dockerfile.

After doing this command in src/wrappers/nodejs/server/ folder

$ docker build -t groupsig-server .

I obtain this error at the stage npm install:

#12 365.7 -- Installing: /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/trapdoor.h
#12 365.7 -- Installing: /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/proof.h
#12 365.7 -- Installing: /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/klap20.h
#12 365.7 -- Installing: /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml_handles.h
#12 365.8 [ 72%] Completed 'libgroupsig'
#12 365.9 [ 72%] Built target libgroupsig
#12 365.9 Scanning dependencies of target jsgroupsig
#12 365.9 [ 81%] Building C object CMakeFiles/jsgroupsig.dir/src/base64.c.o
#12 366.0 [ 90%] Building C object CMakeFiles/jsgroupsig.dir/src/jsgroupsig.c.o
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:87:22: warning: backslash and newline separated by space
#12 366.1    napi_value jsnull; \
#12 366.1
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_init':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:241:3: error: unknown type name 'groupsig_config_t'; did you mean 'groupsig_proof_t'?
#12 366.1    groupsig_config_t *cfg;
#12 366.1    ^~~~~~~~~~~~~~~~~
#12 366.1    groupsig_proof_t
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:265:10: error: 'groupsig_config_t' undeclared (first use in this function); did you mean 'groupsig_convert'?
#12 366.1    cfg = (groupsig_config_t *) groupsig_init((uint8_t) code, (unsigned int) seed);
#12 366.1           ^~~~~~~~~~~~~~~~~
#12 366.1           groupsig_convert
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:265:10: note: each undeclared identifier is reported only once for each function it appears in
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:265:29: error: expected expression before ')' token
#12 366.1    cfg = (groupsig_config_t *) groupsig_init((uint8_t) code, (unsigned int) seed);
#12 366.1                              ^
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_clear':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:287:3: error: unknown type name 'groupsig_config_t'; did you mean 'groupsig_proof_t'?
#12 366.1    groupsig_config_t *cfg;
#12 366.1    ^~~~~~~~~~~~~~~~~
#12 366.1    groupsig_proof_t
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:313:12: error: too many arguments to function 'groupsig_clear'
#12 366.1    status = groupsig_clear(code, cfg);
#12 366.1             ^~~~~~~~~~~~~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:753:7: note: declared here
#12 366.1    int groupsig_clear(uint8_t code);
#12 366.1        ^~~~~~~~~~~~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_setup':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:450:3: error: unknown type name 'groupsig_config_t'; did you mean 'groupsig_proof_t'?
#12 366.1    groupsig_config_t *cfg;
#12 366.1    ^~~~~~~~~~~~~~~~~
#12 366.1    groupsig_proof_t
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:507:12: error: too many arguments to function 'groupsig_setup'
#12 366.1    status = groupsig_setup((uint8_t) code,
#12 366.1             ^~~~~~~~~~~~~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:773:7: note: declared here
#12 366.1    int groupsig_setup(uint8_t code,
#12 366.1        ^~~~~~~~~~~~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_open':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:977:26: warning: passing argument 1 of 'groupsig_open' from incompatible pointer type [-Wincompatible-pointer-types]
#12 366.1    status = groupsig_open(id, proof, crl, sig, grpkey, mgrkey, gml);
#12 366.1                           ^~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:971:31: note: expected 'uint64_t *' {aka 'long unsigned int *'} but argument is of type 'identity_t *' {aka 'struct <anonymous> *'}
#12 366.1    int groupsig_open(uint64_t *index,
#12 366.1                      ~~~~~~~~~~^~~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_gml_export_file':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:3877:23: warning: passing argument 1 of 'gml_export' from incompatible pointer type [-Wincompatible-pointer-types]
#12 366.1    status = gml_export(gml, dst, format);
#12 366.1                        ^~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:29,
#12 366.1                  from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml.h:248:25: note: expected 'byte_t **' {aka 'unsigned char **'} but argument is of type 'gml_t *' {aka 'struct <anonymous> *'}
#12 366.1  int gml_export(byte_t **bytes, uint32_t *size, gml_t *gml);
#12 366.1                 ~~~~~~~~~^~~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:3877:28: warning: passing argument 2 of 'gml_export' from incompatible pointer type [-Wincompatible-pointer-types]
#12 366.1    status = gml_export(gml, dst, format);
#12 366.1                             ^~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:29,
#12 366.1                  from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml.h:248:42: note: expected 'uint32_t *' {aka 'unsigned int *'} but argument is of type 'char *'
#12 366.1  int gml_export(byte_t **bytes, uint32_t *size, gml_t *gml);
#12 366.1                                 ~~~~~~~~~~^~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:3877:33: warning: passing argument 3 of 'gml_export' makes pointer from integer without a cast [-Wint-conversion]
#12 366.1    status = gml_export(gml, dst, format);
#12 366.1                                  ^~~~~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:29,
#12 366.1                  from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml.h:248:55: note: expected 'gml_t *' {aka 'struct <anonymous> *'} but argument is of type 'uint32_t' {aka 'unsigned int'}
#12 366.1  int gml_export(byte_t **bytes, uint32_t *size, gml_t *gml);
#12 366.1                                                 ~~~~~~~^~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c: In function 'gs_gml_import':
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:3918:37: warning: passing argument 2 of 'gml_import' makes pointer from integer without a cast [-Wint-conversion]
#12 366.1    gml = gml_import((uint8_t ) code, format, src);
#12 366.1                                      ^~~~~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:29,
#12 366.1                  from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml.h:260:8: note: expected 'byte_t *' {aka 'unsigned char *'} but argument is of type 'uint32_t' {aka 'unsigned int'}
#12 366.1  gml_t* gml_import(uint8_t code, byte_t *bytes, uint32_t size);
#12 366.1         ^~~~~~~~~~
#12 366.1 /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:3918:45: warning: passing argument 3 of 'gml_import' makes integer from pointer without a cast [-Wint-conversion]
#12 366.1    gml = gml_import((uint8_t ) code, format, src);
#12 366.1                                              ^~~
#12 366.1 In file included from /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/groupsig.h:29,
#12 366.1                  from /opt/server/node_modules/jsgroupsig/src/jsgroupsig.c:9:
#12 366.1 /opt/server/node_modules/jsgroupsig/build/external/include/groupsig/gml.h:260:8: note: expected 'uint32_t' {aka 'unsigned int'} but argument is of type 'char *'
#12 366.1  gml_t* gml_import(uint8_t code, byte_t *bytes, uint32_t size);
#12 366.1         ^~~~~~~~~~
#12 366.2 make[2]: *** [CMakeFiles/jsgroupsig.dir/build.make:76: CMakeFiles/jsgroupsig.dir/src/jsgroupsig.c.o] Error 1
#12 366.2 make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/jsgroupsig.dir/all] Error 2
#12 366.2 make: *** [Makefile:84: all] Error 2
#12 366.2 ERR! OMG Process terminated: 2
#12 369.4 npm WARN [email protected] No repository field.
#12 369.4 npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules/fsevents):
#12 369.4 npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
#12 369.4
#12 369.5 npm ERR! code ELIFECYCLE
#12 369.5 npm ERR! errno 1
#12 369.5 npm ERR! [email protected] install: `cmake-js compile`
#12 369.5 npm ERR! Exit status 1
#12 369.5 npm ERR!
#12 369.5 npm ERR! Failed at the [email protected] install script.
#12 369.5 npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
#12 369.6

If you need more details or information about the error, please let me know. I will do my best to give more relevant information.

Thank you!
Kind regards,
Kévin

Environment:

docker version
Client: Docker Engine - Community
 Cloud integration: 1.0.4
 Version:           20.10.0
 API version:       1.41
 Go version:        go1.13.15
 Git commit:        7287ab3
 Built:             Tue Dec  8 18:55:31 2020
 OS/Arch:           windows/amd64
 Context:           default
 Experimental:      true

Server: Docker Engine - Community
 Engine:
  Version:          20.10.0
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.13.15
  Git commit:       eeddea2
  Built:            Tue Dec  8 18:58:04 2020
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          v1.4.3
  GitCommit:        269548fa27e0089a8b8278fc4fc781d7f65a939b
 runc:
  Version:          1.0.0-rc92
  GitCommit:        ff819c7e9184c13b7c2607fe6c30ae19403a7aff
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

[Python] GML and CRL implementation

Hi,
First of all, thanks for your work.

I want to know if is it possible to remove a member from the GML (or revoke from CRL) from the python wrapper.
I've looked at the code, but only import/export functions are defined, lot of functions from gml.c and crl.c are missing. Also, is it possible to import a GML from disk? I saw that it's possible to pass GML as argument in join_mgr, however, it's never used.

Another doubt, is it possible to use grpkey-mgrkey the same as public-key cryptography? I mean, can I cipher the message with the grpkey, send it over the network and decrypt it using mgrkey?

P.S.: why grpkey.py has grpkey_to_string commented out? I checked the C implementation but it's uncommented.

P.S2.: After some tests, I've seen that you decode the base64 string in mostly all *_export functions except gml_export, is there any particular reason for that?

Best regards,
S.

[Core] Generalize SPK module

Current SPK functionality is very tailored to the specific needs that the supported schemes have (including data types). A generalisation would make it much easier to incorporate new schemes.

The generalisation should at least include an abstraction of the algebraic structure to which the elements in the proof(s) belong.

BUILD PROBLEM

Hi, i have problem with build in section where is building libgroupsig.so.
obrazek

This is the part where the whole thing crashes and the following errors are displayed:
obrazek

Can you help me with some idea, how to solve it? Thanks a lot.

[Core] Integrate GL19 modification

We actually target a variant of GL19, where we rely on an honest issuer in the reduction of some properties. This allows to achieve online extractability using ElGamal rather than Paillier, which in turn leads to a more efficient scheme.

So far, the modification has not been integrated.

[Core] Redesign GML export/import

Currently, the only option is to export/import GMLs to/from a file. This is probably not a good idea.

Alternatively, it may be better to export/import individual entries as array of bytes (and/or Base64 strings) and let the caller decide where to store this (e.g., a file, a DB...).

Changing this will affect not only the Core, but also the wrappers.

How to build?

Hello!
I've been attempting to build this project for the past day or so, and can't manage to do it properly.
The supplied docker image does not build Core unless you modify the Dockerfile to include libgmp-dev. This allows it to build core and work with the nodejs wrapper, but I cannot use it outside of the docker container.

I've attempted to change the OpenSSL version from 3.0.8 to 1.1, but that seemed to produce about the same errors besides some deprecation warnings. I also attempted to change cmake to version 3.13, but that doesn't work with jsoncpp.so on my system.

This is the log for both `cmake ..` and `make`
-- The C compiler identification is GNU 12.2.1
-- The CXX compiler identification is GNU 12.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found OpenSSL: /usr/lib/libcrypto.so (found version "3.0.8")  
-- Configuring done
-- Generating done
-- Build files have been written to: /home/username/Uni/sem-10/Thesis/libgroupsig/build
[  1%] Creating directories for 'mclproject'
[  1%] Performing download step (git clone) for 'mclproject'
Cloning into 'mclproject'...
Already on 'master'
Your branch is up to date with 'origin/master'.
[  2%] Performing update step for 'mclproject'
[  2%] No patch step for 'mclproject'
[  3%] Performing configure step for 'mclproject'
-- The CXX compiler identification is GNU 12.2.1
-- The C compiler identification is GNU 12.2.1
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Found GMP: /usr/include (found version "6.2.1") 
-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    MCL_USE_GMP


-- Build files have been written to: /home/username/Uni/sem-10/Thesis/libgroupsig/build/mclproject-prefix/src/mclproject-build
[  4%] Performing build step for 'mclproject'
[  7%] Building CXX object CMakeFiles/mcl.dir/src/fp.cpp.o
[ 14%] Building ASM object CMakeFiles/mcl.dir/src/asm/bint-x64-amd64.S.o
[ 21%] Building ASM object CMakeFiles/mcl.dir/src/asm/x86-64.S.o
[ 28%] Linking CXX shared library lib/libmcl.so
[ 28%] Built target mcl
[ 35%] Building CXX object CMakeFiles/mcl_st.dir/src/fp.cpp.o
[ 42%] Building ASM object CMakeFiles/mcl_st.dir/src/asm/bint-x64-amd64.S.o
[ 50%] Building ASM object CMakeFiles/mcl_st.dir/src/asm/x86-64.S.o
[ 57%] Linking CXX static library lib/libmcl.a
[ 57%] Built target mcl_st
[ 64%] Building CXX object CMakeFiles/mclbn256.dir/src/bn_c256.cpp.o
[ 71%] Linking CXX shared library lib/libmclbn256.so
[ 71%] Built target mclbn256
[ 78%] Building CXX object CMakeFiles/mclbn384.dir/src/bn_c384.cpp.o
[ 85%] Linking CXX shared library lib/libmclbn384.so
[ 85%] Built target mclbn384
[ 92%] Building CXX object CMakeFiles/mclbn384_256.dir/src/bn_c384_256.cpp.o
[100%] Linking CXX shared library lib/libmclbn384_256.so
[100%] Built target mclbn384_256
[  5%] Performing install step for 'mclproject'
[ 28%] Built target mcl
[ 57%] Built target mcl_st
[ 71%] Built target mclbn256
[ 85%] Built target mclbn384
[100%] Built target mclbn384_256
Install the project...
-- Install configuration: ""
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmcl.so.1.74
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmcl.so.1
-- Set runtime path of "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmcl.so.1.74" to "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib"
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmcl.so
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmcl.a
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn256.so.1.74
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn256.so.1
-- Set runtime path of "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn256.so.1.74" to "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib"
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn256.so
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384.so.1.74
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384.so.1
-- Set runtime path of "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384.so.1.74" to "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib"
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384.so
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384_256.so.1.74
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384_256.so.1
-- Set runtime path of "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384_256.so.1.74" to "/home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib"
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/libmclbn384_256.so
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/ecdsa.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn_c384_256.h
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/util.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/op.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/impl
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/impl/bn_c_impl.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/vint.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/config.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/paillier.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/fp.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bint.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bint_proto.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bls12_381.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn_c384.h
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn384.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/ecparam.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/gmp_util.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn.h
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn512.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/mapto_wb19.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn_c256.h
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/conversion.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/lagrange.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/elgamal.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/aggregate_sig.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/bn256.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/fp_tower.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/ec.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/window_method.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/she.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/operator.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/randgen.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/ntt.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/curve_type.h
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/mcl/array.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/unordered_map.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/file.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/serializer.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/sha2.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/exception.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/link_mpir.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/link_ssleay32.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/critical_section.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/option.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/time.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/stream.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/benchmark.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/socket.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/test.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/endian.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/atomic.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/xorshift.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/crypto.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/atoi.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/itoa.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/mutex.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/random_generator.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/bit_operation.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/link_libeay32.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/inttype.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/hash.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/include/cybozu/array.hpp
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/cmake/mcl/mclTargets.cmake
-- Installing: /home/username/Uni/sem-10/Thesis/libgroupsig/build/external/lib/cmake/mcl/mclTargets-noconfig.cmake
[  5%] Completed 'mclproject'
[  5%] Built target mclproject
[  5%] Building C object src/logger/CMakeFiles/logger.dir/logger.c.o
[  6%] Linking C static library ../../lib/liblogger.a
[  6%] Built target logger
[  6%] Building C object src/shim/CMakeFiles/base64.dir/base64.c.o
[  7%] Linking C static library ../../lib/libbase64.a
[  7%] Built target base64
[  8%] Building C object src/msg/CMakeFiles/msg.dir/message.c.o
[  8%] Linking C static library ../../lib/libmsg.a
[  8%] Built target msg
[  9%] Building C object src/sys/CMakeFiles/sys.dir/mem.c.o
[  9%] Building C object src/sys/CMakeFiles/sys.dir/sysenv.c.o
[ 10%] Linking C static library ../../lib/libsys.a
[ 10%] Built target sys
[ 11%] Building C object src/shim/CMakeFiles/big.dir/bigz.c.o
/home/username/Uni/sem-10/Thesis/libgroupsig/src/shim/bigz.c: In function ‘bigz_probab_prime_p’:
/home/username/Uni/sem-10/Thesis/libgroupsig/src/shim/bigz.c:556:3: warning: ‘BN_is_prime_ex’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  556 |   if((rc = BN_is_prime_ex(n, reps, sysenv->big_ctx, NULL)) == -1) {
      |   ^~
In file included from /home/username/Uni/sem-10/Thesis/libgroupsig/src/include/big.h:23,
                 from /home/username/Uni/sem-10/Thesis/libgroupsig/src/include/bigz.h:26,
                 from /home/username/Uni/sem-10/Thesis/libgroupsig/src/include/sysenv.h:26,
                 from /home/username/Uni/sem-10/Thesis/libgroupsig/src/shim/bigz.c:22:
/usr/include/openssl/bn.h:373:5: note: declared here
  373 | int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb);
      |     ^~~~~~~~~~~~~~
[ 11%] Linking C static library ../../lib/libbig.a
[ 11%] Built target big
[ 12%] Building C object src/shim/CMakeFiles/pbcext.dir/pbc_ext.c.o
[ 13%] Linking C static library ../../lib/libpbcext.a
[ 13%] Built target pbcext
[ 14%] Building C object src/misc/CMakeFiles/misc.dir/misc.c.o
[ 14%] Building C object src/misc/CMakeFiles/misc.dir/profile.c.o
[ 15%] Linking C static library ../../lib/libmisc.a
[ 15%] Built target misc
[ 15%] Building C object src/shim/CMakeFiles/hash.dir/hash.c.o
[ 16%] Linking C static library ../../lib/libhash.a
[ 16%] Built target hash
[ 16%] Building C object src/crypto/CMakeFiles/gcrypto.dir/spk.c.o
[ 17%] Building C object src/crypto/CMakeFiles/gcrypto.dir/prf.c.o
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c: In function ‘prf_compute’:
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:107:3: warning: ‘HMAC_CTX_new’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  107 |   if(!(hmac_ctx = HMAC_CTX_new())) {
      |   ^~
In file included from /home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:25:
/usr/include/openssl/hmac.h:33:33: note: declared here
   33 | OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void);
      |                                 ^~~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:113:3: warning: ‘HMAC_Init_ex’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  113 |   if(!(HMAC_Init_ex(hmac_ctx, key->bytes, key->len, md, NULL))) {
      |   ^~
/usr/include/openssl/hmac.h:43:27: note: declared here
   43 | OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
      |                           ^~~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:116:5: warning: ‘HMAC_CTX_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  116 |     HMAC_CTX_free(hmac_ctx);
      |     ^~~~~~~~~~~~~
/usr/include/openssl/hmac.h:35:28: note: declared here
   35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
      |                            ^~~~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:120:3: warning: ‘HMAC_Update’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  120 |   if(!(HMAC_Update(hmac_ctx, data, (int) len))) {
      |   ^~
/usr/include/openssl/hmac.h:45:27: note: declared here
   45 | OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data,
      |                           ^~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:123:5: warning: ‘HMAC_CTX_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  123 |     HMAC_CTX_free(hmac_ctx);
      |     ^~~~~~~~~~~~~
/usr/include/openssl/hmac.h:35:28: note: declared here
   35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
      |                            ^~~~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:128:3: warning: ‘HMAC_Final’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  128 |   if(!(HMAC_Final(hmac_ctx, _out, &_len))) {
      |   ^~
/usr/include/openssl/hmac.h:47:27: note: declared here
   47 | OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md,
      |                           ^~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:131:5: warning: ‘HMAC_CTX_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  131 |     HMAC_CTX_free(hmac_ctx);
      |     ^~~~~~~~~~~~~
/usr/include/openssl/hmac.h:35:28: note: declared here
   35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
      |                            ^~~~~~~~~~~~~
/home/username/Uni/sem-10/Thesis/libgroupsig/src/crypto/prf.c:146:3: warning: ‘HMAC_CTX_free’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations]
  146 |   HMAC_CTX_free(hmac_ctx);
      |   ^~~~~~~~~~~~~
/usr/include/openssl/hmac.h:35:28: note: declared here
   35 | OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx);
      |                            ^~~~~~~~~~~~~
[ 18%] Linking C static library ../../lib/libgcrypto.a
[ 18%] Built target gcrypto
[ 19%] Building C object src/math/CMakeFiles/math.dir/nt.c.o
[ 19%] Building C object src/math/CMakeFiles/math.dir/rnd.c.o
[ 20%] Building C object src/math/CMakeFiles/math.dir/perm.c.o
[ 21%] Linking C static library ../../lib/libmath.a
[ 21%] Built target math
[ 22%] Building C object src/groupsig/CMakeFiles/objlib.dir/groupsig.c.o
[ 22%] Building C object src/groupsig/CMakeFiles/objlib.dir/grp_key.c.o
[ 23%] Building C object src/groupsig/CMakeFiles/objlib.dir/mgr_key.c.o
[ 24%] Building C object src/groupsig/CMakeFiles/objlib.dir/mem_key.c.o
[ 24%] Building C object src/groupsig/CMakeFiles/objlib.dir/bld_key.c.o
[ 25%] Building C object src/groupsig/CMakeFiles/objlib.dir/signature.c.o
[ 26%] Building C object src/groupsig/CMakeFiles/objlib.dir/blindsig.c.o
[ 26%] Building C object src/groupsig/CMakeFiles/objlib.dir/proof.c.o
[ 27%] Building C object src/groupsig/CMakeFiles/objlib.dir/identity.c.o
[ 28%] Building C object src/groupsig/CMakeFiles/objlib.dir/trapdoor.c.o
[ 28%] Building C object src/groupsig/CMakeFiles/objlib.dir/gml.c.o
[ 29%] Building C object src/groupsig/CMakeFiles/objlib.dir/crl.c.o
[ 29%] Built target objlib
[ 29%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/grp_key.c.o
[ 30%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/mgr_key.c.o
[ 30%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/mem_key.c.o
[ 31%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/signature.c.o
[ 32%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/setup.c.o
[ 32%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/join_mem.c.o
[ 33%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/join_mgr.c.o
[ 34%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/sign.c.o
[ 34%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/verify.c.o
[ 35%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/identify.c.o
[ 36%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/link.c.o
[ 36%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/verify_link.c.o
[ 37%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/seqlink.c.o
[ 38%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/verify_seqlink.c.o
[ 38%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/proof.c.o
[ 39%] Building C object src/groupsig/dl21seq/CMakeFiles/dl21seq.dir/identity.c.o
[ 40%] Linking C static library ../../../lib/libdl21seq.a
[ 40%] Built target dl21seq
[ 40%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/grp_key.c.o
[ 41%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/mgr_key.c.o
[ 42%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/mem_key.c.o
[ 42%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/signature.c.o
[ 43%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/setup.c.o
[ 44%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/join_mem.c.o
[ 44%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/join_mgr.c.o
[ 45%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/sign.c.o
[ 46%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/verify.c.o
[ 46%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/open.c.o
[ 47%] Building C object src/groupsig/bbs04/CMakeFiles/bbs04.dir/gml.c.o
[ 48%] Linking C static library ../../../lib/libbbs04.a
[ 48%] Built target bbs04
[ 48%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/grp_key.c.o
[ 49%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/mgr_key.c.o
[ 49%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/mem_key.c.o
[ 50%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/bld_key.c.o
[ 51%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/signature.c.o
[ 51%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/blindsig.c.o
[ 52%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/setup.c.o
[ 53%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/join_mem.c.o
[ 53%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/join_mgr.c.o
[ 54%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/sign.c.o
[ 55%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/verify.c.o
[ 55%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/blind.c.o
[ 56%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/convert.c.o
[ 57%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/unblind.c.o
[ 57%] Building C object src/groupsig/gl19/CMakeFiles/gl19.dir/identity.c.o
[ 58%] Linking C static library ../../../lib/libgl19.a
[ 58%] Built target gl19
[ 58%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/grp_key.c.o
[ 59%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/mgr_key.c.o
[ 60%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/mem_key.c.o
[ 60%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/signature.c.o
[ 61%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/setup.c.o
[ 61%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/join_mem.c.o
[ 62%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/join_mgr.c.o
[ 63%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/sign.c.o
[ 63%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/verify.c.o
[ 64%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/open.c.o
[ 65%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/open_verify.c.o
[ 65%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/gml.c.o
[ 66%] Building C object src/groupsig/ps16/CMakeFiles/ps16.dir/proof.c.o
[ 67%] Linking C static library ../../../lib/libps16.a
[ 67%] Built target ps16
[ 68%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/grp_key.c.o
[ 68%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/mgr_key.c.o
[ 69%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/mem_key.c.o
[ 70%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/signature.c.o
[ 70%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/setup.c.o
[ 71%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/join_mem.c.o
[ 72%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/join_mgr.c.o
[ 72%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/sign.c.o
[ 73%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/verify.c.o
[ 74%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/open.c.o
[ 74%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/open_verify.c.o
[ 75%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/gml.c.o
[ 76%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/spk.c.o
[ 76%] Building C object src/groupsig/klap20/CMakeFiles/klap20.dir/proof.c.o
[ 77%] Linking C static library ../../../lib/libklap20.a
[ 77%] Built target klap20
[ 77%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/grp_key.c.o
[ 78%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/mgr_key.c.o
[ 79%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/mem_key.c.o
[ 79%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/signature.c.o
[ 80%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/setup.c.o
[ 81%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/join_mem.c.o
[ 81%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/join_mgr.c.o
[ 82%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/sign.c.o
[ 83%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/verify.c.o
[ 83%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/identify.c.o
[ 84%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/link.c.o
[ 85%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/verify_link.c.o
[ 85%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/proof.c.o
[ 86%] Building C object src/groupsig/dl21/CMakeFiles/dl21.dir/identity.c.o
[ 87%] Linking C static library ../../../lib/libdl21.a
[ 87%] Built target dl21
[ 88%] Linking C shared library ../../lib/libgroupsig.so
/usr/bin/ld: CMakeFiles/objlib.dir/grp_key.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/grp_key.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/mgr_key.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/mgr_key.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/mem_key.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/mem_key.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/bld_key.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/bld_key.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/signature.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/signature.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/blindsig.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/blindsig.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/proof.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/proof.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/identity.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/identity.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/trapdoor.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/gml.c.o:(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/gml.c.o:(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: CMakeFiles/objlib.dir/crl.c.o:(.bss+0x20): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(open.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(open.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(gml.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbbs04.a(gml.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(bld_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(bld_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(blindsig.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(blindsig.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(blind.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(blind.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(convert.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(convert.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(unblind.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(unblind.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgl19.a(identity.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgl19.a(identity.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(open.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(open.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(open_verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(open_verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(gml.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(gml.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libps16.a(proof.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libps16.a(proof.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(open.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(open.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(open_verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(open_verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(gml.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(gml.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(spk.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(spk.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libklap20.a(proof.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libklap20.a(proof.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(identify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(identify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(link.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(link.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(verify_link.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(verify_link.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(proof.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(proof.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21.a(identity.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21.a(identity.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(grp_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(grp_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(mgr_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(mgr_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(mem_key.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(mem_key.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(signature.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(signature.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(setup.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(setup.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(join_mem.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(join_mem.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(join_mgr.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(join_mgr.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(sign.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(sign.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(identify.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(identify.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(link.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(link.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify_link.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify_link.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(seqlink.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(seqlink.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify_seqlink.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(verify_seqlink.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(proof.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(proof.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(identity.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libdl21seq.a(identity.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libsys.a(sysenv.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libsys.a(sysenv.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libmath.a(rnd.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libmath.a(rnd.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libmath.a(perm.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbase64.a(base64.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libmisc.a(misc.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libhash.a(hash.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgcrypto.a(spk.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libgcrypto.a(spk.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
/usr/bin/ld: ../../lib/libgcrypto.a(prf.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libmsg.a(message.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libpbcext.a(pbc_ext.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/liblogger.a(logger.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbig.a(bigz.c.o):(.bss+0x0): multiple definition of `logger'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x0): first defined here
/usr/bin/ld: ../../lib/libbig.a(bigz.c.o):(.bss+0x20): multiple definition of `sysenv'; CMakeFiles/objlib.dir/groupsig.c.o:(.bss+0x20): first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [src/groupsig/CMakeFiles/groupsig.dir/build.make:127: lib/libgroupsig.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:1462: src/groupsig/CMakeFiles/groupsig.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

I'd like to be able to use the Java wrapper as a proper group signature library would be extremely useful for my research.

Would you suggest any alternatives? Am I doing something wrong?
Thank you :)

how to send usk from manager's system to user's system ?

Hi there,

I'd like to establish bbs04 group sig infrastructure based on your awesome library but am new in here.

I need to designate both manager and some users, deploying manager on GCP server, users on smart phones, in order to build my project.

To do so, I have to let the manager issue the msk, gpk, and gml, generate usks using groupsig.join_mgr() and groupsig.join_mem() methods, send them to each user's front-end device.

I've made simple prototype to test the mechanism that I explained.

I've done creating manager.py which generates an usk and writes it to a file. then created member.py in order to let it read the file which contains the usk.

I expected the member.py to import the usk from the file successfully.

But when I do above, it gives me Segmentation Fault.

Here is my code demo :

manager.py :

from pygroupsig import groupsig
from pygroupsig import signature
from pygroupsig import grpkey
from pygroupsig import mgrkey
from pygroupsig import gml
from pygroupsig import identity
from pygroupsig import constants

# Setup
def setup_manager():
    fname = input("input gpk file (if you don't have gpk file, press enter)").strip()
    bbs04 = None

    if fname == '':
        bbs04 = groupsig.setup(constants.BBS04_CODE) # BBS group signature
    else:
        with open(fname, "r") as f:
            b64gpk = f.readline()
            gpk = grpkey.grpkey_import(constants.BBS04_CODE, b64gpk)
            bbs04 = groupsig.setup(constants.BBS04_CODE, grpkey=gpk)
    
    gpk = bbs04['grpkey']   # group public key

    # share group public key
    with open("./gpk", "w") as f:
        b64gpk = grpkey.grpkey_export(gpk)
        f.write("{}".format(b64gpk))
    
    # with open("./gpk", "r") as f:
    #     print('now reading!')
    #     b64gpk = f.readline()
    #     print(b64gpk)
    #     readgpk = grpkey.grpkey_import(constants.BBS04_CODE, b64gpk)
    #     print('readgpk', readgpk)
    #     print('gpk', gpk)
        
    #     if grpkey.grpkey_export(gpk) == grpkey.grpkey_export(readgpk):
    #         print("safe save")
    
    return bbs04


# Join
def join_setup():
    msg1 = groupsig.join_mgr(0, msk, gpk, gml = gml)    # Runs the manager side of join of the scheme.

    # share invite message
    with open("invitation", "w") as f:
        f.write("{}\n".format(msg1))
    
    print('send a invitation')
    return


# Verify
def verify(gpk):
    fname = input('write a signature file : ')
    with open(fname, "r") as f:
        msg = f.readline()
        b64sig = f.readline()
        sig = signature.signature_import(constants.BBS04_CODE, b64sig)
        result = groupsig.verify(sig, msg, gpk)

        if result == True:
            print ("{} ==> VALID signature.".format(fname))
        else:
            print ("{} ==> WRONG signature.".format(fname))
    return


# Open
def open_signature(msk, gpk, gml):
    fname = input('write a signature file : ')
    with open(fname, "r") as f:
        _ = f.readline()
        sig = f.readline()

        id = groupsig.open(sig, msk, gpk, gml)
        mem = identity.identity_to_string(id)
        print("identity of the signature : {}".format(mem))
    return


if __name__ == "__main__":
    # something code...
    bbs = None
    gpk = None
    msk = None
    gml = None
    while True:
        print("---menu---")
        print("1. setup manager")
        print("2. join member")
        print("3. verify sign")
        print("4. open sign")
        print("5. quit")
        
        select = int(input().rstrip())
        
        if select == 1:
            bbs = setup_manager()
            gpk = bbs['grpkey']
            gml = bbs['gml']
            msk = bbs['mgrkey']
        elif select == 2:
            if bbs is None:
                print("setup first")
                continue
            join_setup()
        elif select == 3: 
            if bbs is None:
                print("setup first")
                continue
            verify(gpk)
        elif select == 4:  
            if bbs is None:
                print("setup first")
                continue
            open_signature(msk, gpk, gml)
        else: break
        
    groupsig.clear(constants.BBS04_CODE, bbs['config'])

member.py :

from pygroupsig import groupsig
from pygroupsig import signature
from pygroupsig import memkey
from pygroupsig import grpkey
from pygroupsig import constants
import os


# Setup
def setup_member():
    gpk = None
    gpkpath = os.path.join(os.getcwd(), 'gpk')
    print(gpkpath)
    with open(gpkpath, "r") as f:
        b64gpk = f.readline().strip()
        print(b64gpk)
        print(len(b64gpk))
        gpk = grpkey.grpkey_import(constants.BBS04_CODE, b64gpk)

    # b64gpk = input('gpk: ').strip()
    # print()
    # print(b64gpk)
    # print(len(b64gpk))
    # gpk = grpkey.grpkey_import(constants.BBS04_CODE, b64gpk)

    return gpk

# Join
def join(gpk):
    join_message = None
    with open("invitation", "r") as f:
        invite_message = f.readline()
        join_message = groupsig.join_mem(1, gpk, msgin = invite_message)
    return join_message


# Sign
def sign(usk, gpk):
    fname = input('input file name')
    with open(fname, "w") as f:
        msg = input('input message')
        sign = groupsig.sign(msg, usk, gpk)
        b64sign = signature.signature_export(sign)

        f.write("{}\n{}\n".format(msg, b64sign))
    return


if __name__ == "__main__":
    # something code...
    gpk = None
    usk = None
    while True:
        print("---menu---")
        print("1. setup member")
        print("2. join member")
        print("3. sign message")
        print("5. quit")
        
        select = int(input().rstrip())
        
        if select == 1:
            gpk = setup_member()
        elif select == 2: 
            if gpk is None:
                print('setup first (get group public key)')
                continue
            join_msg = join(gpk)
            usk = join_msg['memkey']
        elif select == 3: 
            if gpk is None:
                print('setup first (get group public key)')
                continue
            sign(usk, gpk)
        else: break

Any advices will help me so much.

[Wiki] Document the supported variants

Specifically, describe their setup and join processes, and any differences with respect to the schemes originally described in their respective papers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.