From 2be2d008ecdfd352bb8eedce190621f5a71fdf16 Mon Sep 17 00:00:00 2001 From: Manu Drijvers Date: Thu, 24 May 2018 20:47:04 +0200 Subject: [PATCH] [FAB-10370] change format for storing revocationpk We store the revocation key as encoded PEM bytes to be consistent with how x509 certs are stored. Change-Id: Iee8373b1ceaa00095b0dcf72ecca4a92ab0bcc6f Signed-off-by: Manu Drijvers --- .../tools/idemixgen/idemixca/idemixca_test.go | 10 ++++++-- common/tools/idemixgen/idemixgen.go | 23 ++++++++++++------ msp/idemixmsp.go | 23 +++++++++++++----- .../idemix/MSP1OU1/ca/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1OU1/ca/IssuerSecretKey | Bin 32 -> 32 bytes msp/testdata/idemix/MSP1OU1/ca/RevocationKey | Bin 167 -> 282 bytes .../idemix/MSP1OU1/msp/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1OU1/msp/RevocationPublicKey | Bin 97 -> 215 bytes msp/testdata/idemix/MSP1OU1/user/SignerConfig | Bin 640 -> 644 bytes .../idemix/MSP1OU1Admin/ca/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1OU1Admin/ca/IssuerSecretKey | Bin 32 -> 32 bytes .../idemix/MSP1OU1Admin/ca/RevocationKey | Bin 167 -> 282 bytes .../idemix/MSP1OU1Admin/msp/IssuerPublicKey | Bin 843 -> 843 bytes .../MSP1OU1Admin/msp/RevocationPublicKey | Bin 97 -> 215 bytes .../idemix/MSP1OU1Admin/user/SignerConfig | Bin 649 -> 647 bytes .../idemix/MSP1OU2/ca/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1OU2/ca/IssuerSecretKey | Bin 32 -> 32 bytes msp/testdata/idemix/MSP1OU2/ca/RevocationKey | Bin 167 -> 282 bytes .../idemix/MSP1OU2/msp/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1OU2/msp/RevocationPublicKey | Bin 97 -> 215 bytes msp/testdata/idemix/MSP1OU2/user/SignerConfig | Bin 642 -> 644 bytes .../idemix/MSP1Verifier/ca/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP1Verifier/ca/IssuerSecretKey | Bin 32 -> 32 bytes .../idemix/MSP1Verifier/ca/RevocationKey | Bin 167 -> 282 bytes .../idemix/MSP1Verifier/msp/IssuerPublicKey | Bin 843 -> 843 bytes .../MSP1Verifier/msp/RevocationPublicKey | Bin 97 -> 215 bytes .../idemix/MSP2OU1/ca/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP2OU1/ca/IssuerSecretKey | 2 +- msp/testdata/idemix/MSP2OU1/ca/RevocationKey | Bin 167 -> 282 bytes .../idemix/MSP2OU1/msp/IssuerPublicKey | Bin 843 -> 843 bytes .../idemix/MSP2OU1/msp/RevocationPublicKey | 7 ++++-- msp/testdata/idemix/MSP2OU1/user/SignerConfig | Bin 645 -> 644 bytes 32 files changed, 47 insertions(+), 18 deletions(-) diff --git a/common/tools/idemixgen/idemixca/idemixca_test.go b/common/tools/idemixgen/idemixca/idemixca_test.go index 7097258e47..8b4f1d10cf 100644 --- a/common/tools/idemixgen/idemixca/idemixca_test.go +++ b/common/tools/idemixgen/idemixca/idemixca_test.go @@ -12,7 +12,9 @@ import ( "path/filepath" "testing" - "crypto/elliptic" + "crypto/x509" + + "encoding/pem" "github.com/golang/protobuf/proto" "github.com/hyperledger/fabric/idemix" @@ -37,7 +39,11 @@ func TestIdemixCa(t *testing.T) { err = proto.Unmarshal(ipkBytes, ipk) assert.NoError(t, err) - writeVerifierToFile(ipkBytes, elliptic.Marshal(elliptic.P384(), revocationkey.X, revocationkey.Y)) + encodedRevocationPK, err := x509.MarshalPKIXPublicKey(revocationkey.Public()) + assert.NoError(t, err) + pemEncodedRevocationPK := pem.EncodeToMemory(&pem.Block{Type: "PUBLIC KEY", Bytes: encodedRevocationPK}) + + writeVerifierToFile(ipkBytes, pemEncodedRevocationPK) key := &idemix.IssuerKey{Isk: isk, Ipk: ipk} diff --git a/common/tools/idemixgen/idemixgen.go b/common/tools/idemixgen/idemixgen.go index 8dbcee4365..907bcb2433 100644 --- a/common/tools/idemixgen/idemixgen.go +++ b/common/tools/idemixgen/idemixgen.go @@ -18,10 +18,10 @@ import ( "os" "path/filepath" - "crypto/elliptic" - "crypto/ecdsa" + "encoding/pem" + "github.com/golang/protobuf/proto" "github.com/hyperledger/fabric/common/tools/idemixgen/idemixca" "github.com/hyperledger/fabric/common/tools/idemixgen/metadata" @@ -64,9 +64,13 @@ func main() { revocationKey, err := idemix.GenerateLongTermRevocationKey() handleError(err) - revocationKeyBytes, err := x509.MarshalECPrivateKey(revocationKey) + encodedRevocationSK, err := x509.MarshalECPrivateKey(revocationKey) + handleError(err) + pemEncodedRevocationSK := pem.EncodeToMemory(&pem.Block{Type: "PRIVATE KEY", Bytes: encodedRevocationSK}) handleError(err) - revocationPkBytes := elliptic.Marshal(elliptic.P384(), revocationKey.X, revocationKey.Y) + encodedRevocationPK, err := x509.MarshalPKIXPublicKey(revocationKey.Public()) + handleError(err) + pemEncodedRevocationPK := pem.EncodeToMemory(&pem.Block{Type: "PUBLIC KEY", Bytes: encodedRevocationPK}) // Prevent overwriting the existing key path := filepath.Join(*outputDir, IdemixDirIssuer) @@ -79,9 +83,9 @@ func main() { handleError(os.MkdirAll(filepath.Join(*outputDir, IdemixDirIssuer), 0770)) handleError(os.MkdirAll(filepath.Join(*outputDir, msp.IdemixConfigDirMsp), 0770)) writeFile(filepath.Join(*outputDir, IdemixDirIssuer, IdemixConfigIssuerSecretKey), isk) - writeFile(filepath.Join(*outputDir, IdemixDirIssuer, IdemixConfigRevocationKey), revocationKeyBytes) + writeFile(filepath.Join(*outputDir, IdemixDirIssuer, IdemixConfigRevocationKey), pemEncodedRevocationSK) writeFile(filepath.Join(*outputDir, IdemixDirIssuer, msp.IdemixConfigFileIssuerPublicKey), ipk) - writeFile(filepath.Join(*outputDir, msp.IdemixConfigDirMsp, msp.IdemixConfigFileRevocationPublicKey), revocationPkBytes) + writeFile(filepath.Join(*outputDir, msp.IdemixConfigDirMsp, msp.IdemixConfigFileRevocationPublicKey), pemEncodedRevocationPK) writeFile(filepath.Join(*outputDir, msp.IdemixConfigDirMsp, msp.IdemixConfigFileIssuerPublicKey), ipk) case genSignerConfig.FullCommand(): @@ -134,7 +138,12 @@ func readRevocationKey() *ecdsa.PrivateKey { if err != nil { handleError(errors.Wrapf(err, "failed to open revocation secret key file: %s", path)) } - key, err := x509.ParseECPrivateKey(keyBytes) + + block, _ := pem.Decode(keyBytes) + if block == nil { + handleError(errors.Errorf("failed to decode ECDSA private key")) + } + key, err := x509.ParseECPrivateKey(block.Bytes) handleError(err) return key diff --git a/msp/idemixmsp.go b/msp/idemixmsp.go index 31dfad0739..96f0099126 100644 --- a/msp/idemixmsp.go +++ b/msp/idemixmsp.go @@ -13,7 +13,11 @@ import ( "crypto/ecdsa" - "crypto/elliptic" + "crypto/x509" + + "encoding/pem" + + "reflect" "github.com/golang/protobuf/proto" "github.com/hyperledger/fabric-amcl/amcl" @@ -129,12 +133,19 @@ func (msp *idemixmsp) Setup(conf1 *m.MSPConfig) error { msp.rng = rng // get the revocation public key from the config - revPkX, revPkY := elliptic.Unmarshal(elliptic.P384(), conf.RevocationPk) - msp.revocationPK = &ecdsa.PublicKey{ - Curve: elliptic.P384(), - X: revPkX, - Y: revPkY, + blockPub, _ := pem.Decode(conf.RevocationPk) + if blockPub == nil { + return errors.New("Failed to decode revocation ECDSA public key") + } + revocationPk, err := x509.ParsePKIXPublicKey(blockPub.Bytes) + if err != nil { + return errors.Wrap(err, "Failed to parse revocation ECDSA public key bytes") + } + ecdsaPublicKey, isECDSA := revocationPk.(*ecdsa.PublicKey) + if !isECDSA { + return errors.Errorf("key is of type %v, not of type ECDSA", reflect.TypeOf(revocationPk)) } + msp.revocationPK = ecdsaPublicKey if conf.Signer == nil { // No credential in config, so we don't setup a default signer diff --git a/msp/testdata/idemix/MSP1OU1/ca/IssuerPublicKey b/msp/testdata/idemix/MSP1OU1/ca/IssuerPublicKey index 97cb69f3fc70dc331f8a661677ae824c658130d7..9517ed3fbeac0dfdeb9ec4c632a971f221dee2ae 100644 GIT binary patch delta 810 zcmV+_1J(S?2FnJJE`Nl~cKUN2033&CW7Y@9IYFiBZ=jrA)MHF6@>x(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD{a-aBI^FvKLNboRi^*| literal 167 zcmV;Y09gMpfusTf0R%7$FMr3b@EF+sACumRy-Q_>ZwXYdt=ay+0W)) zmFez Vu$nE`>o<-`6q$jB@Dx(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD&2;KEmw3!(2m{~%|`*#k2G_&a0dI zQo(1)EW1poj5 literal 97 zcmV-n0G|H@&@L%3EcLe9*nUEMr4q5*g~Mwp&GCk(dc%9jX+>@MSqO!vMV%%%cK<=r zGOOi)40i?X&2AR3YVfH5CN$F7>x$A#WsYus+pg;#VJEPfE!XQej!6`mfrjuE(lo(i DcWyC> diff --git a/msp/testdata/idemix/MSP1OU1/user/SignerConfig b/msp/testdata/idemix/MSP1OU1/user/SignerConfig index 330d3900eb291b2830c3cc8097a0dcc5fbaf6efa..63cd64cc2ec46223390186a0b9b42cf917f8007d 100644 GIT binary patch delta 426 zcmV;b0agBh1%w5E3fKY)L<%4sS|PMiqz4%de}?g4U}7--9G$`Q)Xh6b&uI^V4o_SX zAc?MrZjdG83c_xIA$Cp(pQ+^{VQ%?qN9kKJqj{DEWJ`xZ^FHDplON_o~CKqs~uH4 z8X#LuW()>oH=;*zl(nwy$X=sA zq%sp7ooD+QRArnHgFhDut;mbZj^kQbyh)Msz2m6`Oh5|8wQwoe2BRbYf U2&yPQ#qs*8lbXRrr!r-ZavZR>eCy2ebi`s>b{6Cv4?0F!ZSgZzWr5DJ$ckYZ62XAR*);+_`7r=Ly-% zq!Hr`P96Ql~Hs0 zDj<_V0U47J0R}Pw5+H#VM(!%K7_H+9f%=#|s=Ov-U7lHJIL97F=vCS9j&T|TPgOB0 z26Sa}bZKNV^OKJOjb~;sWCAc4HjdbTg%P9KXAMDYyBj*Opgfhwz$1!F?OSh$vDv_R zhtqDeW*@X;-mtSkFc-_g2RDSmlOARDlF?94yKhcR#w+@pMj+05Ze(-d_3GCV Q0bOHJk6$H07PQ$1pgCl~ApigX diff --git a/msp/testdata/idemix/MSP1OU1Admin/ca/IssuerPublicKey b/msp/testdata/idemix/MSP1OU1Admin/ca/IssuerPublicKey index 97cb69f3fc70dc331f8a661677ae824c658130d7..9517ed3fbeac0dfdeb9ec4c632a971f221dee2ae 100644 GIT binary patch delta 810 zcmV+_1J(S?2FnJJE`Nl~cKUN2033&CW7Y@9IYFiBZ=jrA)MHF6@>x(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD{a-aBI^FvKLNboRi^*| literal 167 zcmV;Y09gMpfusTf0R%7$FMr3b@EF+sACumRy-Q_>ZwXYdt=ay+0W)) zmFez Vu$nE`>o<-`6q$jB@Dx(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD&2;KEmw3!(2m{~%|`*#k2G_&a0dI zQo(1)EW1poj5 literal 97 zcmV-n0G|H@&@L%3EcLe9*nUEMr4q5*g~Mwp&GCk(dc%9jX+>@MSqO!vMV%%%cK<=r zGOOi)40i?X&2AR3YVfH5CN$F7>x$A#WsYus+pg;#VJEPfE!XQej!6`mfrjuE(lo(i DcWyC> diff --git a/msp/testdata/idemix/MSP1OU1Admin/user/SignerConfig b/msp/testdata/idemix/MSP1OU1Admin/user/SignerConfig index aab4e5d20543380f74cd7f1abef5d61685329ad9..cc51eec672fd4ab23cd56624707f16004e324f82 100644 GIT binary patch delta 421 zcmV;W0b2fv1&0NH3fKY)L<%5k20rbREXh3waw;ei&#kF-^j!=P5Ds8PhR$JR(t!IC zAco%cmB!E0A^#zcPQq}7`alr&@BEiJYt-DD*e$2d9}+|gAa=_<0M-vvTsD4@SAWy6 zg_)kWn^!RH`pQ|Uzq`8OVd~^{~7XYk;I%v z0!rIl{FqK2OJ&Ge*$JGdk<&&Z$^O2WS@Y9PzyR>~4O=5#t;-}qGfnL>H!|lx=k4GX zDj<_V0U47J0R}Y!5+I!34@Znv^J z0V)Y)ZgOvIY-waNlaT?HWA?sj>pq%m$huWXqREv^;|ly=)$NeaPq%Sm5Db&4(6cQb z9;M)w#EEiEBQ5e%tj3JfGeS^joJVDJSB*~J_+UIo>$fPQaQkim Pu6{KP;04c?;jfhj$4tPB delta 423 zcmV;Y0a*Tr1&IZJ3fKY)L<%7OIRY)2cnav*{K$?JyNnQ>?zS=cT~>t)*8&I(@~zDh zAfa&vQqSt7BDSItW|yMnotYAl7a$SjDe>=Dwt?7@+Y&?yAS{Mg^{aEZN2SqCL5PRz zRi?(M;G7m_nN;4$;vvtPff69x)5#7X;Z_CMvGWBIb0g|hQ=BeIHv%m@kR0-z$&5RH z8X&CCoQtH;!7^{o|7btwpk`x0 zh6%a2`}BJsQOw&YlP}GJk<&&ZTV!nxR0Wex0M`JM^laVX0E8R@w6XLnOT+|R#qD#K zDj<_V0U47J0R}e%5+K_pq_06O1%I;#IR&#%r4rKq*Qa@qG&x9Pj8G=A$tfBGPgOA> z0V)f0Wpi|CWMO1&X>OB`0hMEzUYt@nPt>%J)xxJRo96}+qq4xNHd%?!F`927Z(n|O zQ!mzrltdM+!AL#S_AuxIF#yCi1Y!gw<;);Ab#g$Zcl>lD2DdN2;2iS}ccRCFUMbHr RJ>&6POM$YFQF-GIkyjThy|4fP diff --git a/msp/testdata/idemix/MSP1OU2/ca/IssuerPublicKey b/msp/testdata/idemix/MSP1OU2/ca/IssuerPublicKey index 97cb69f3fc70dc331f8a661677ae824c658130d7..9517ed3fbeac0dfdeb9ec4c632a971f221dee2ae 100644 GIT binary patch delta 810 zcmV+_1J(S?2FnJJE`Nl~cKUN2033&CW7Y@9IYFiBZ=jrA)MHF6@>x(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD{a-aBI^FvKLNboRi^*| literal 167 zcmV;Y09gMpfusTf0R%7$FMr3b@EF+sACumRy-Q_>ZwXYdt=ay+0W)) zmFez Vu$nE`>o<-`6q$jB@Dx(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD&2;KEmw3!(2m{~%|`*#k2G_&a0dI zQo(1)EW1poj5 literal 97 zcmV-n0G|H@&@L%3EcLe9*nUEMr4q5*g~Mwp&GCk(dc%9jX+>@MSqO!vMV%%%cK<=r zGOOi)40i?X&2AR3YVfH5CN$F7>x$A#WsYus+pg;#VJEPfE!XQej!6`mfrjuE(lo(i DcWyC> diff --git a/msp/testdata/idemix/MSP1OU2/user/SignerConfig b/msp/testdata/idemix/MSP1OU2/user/SignerConfig index fed8f3cdd52f91fd7f70f452d01bcdadd3dd045d..305167d2569661fd609dd1bd558db3dbff7f127e 100644 GIT binary patch delta 426 zcmV;b0agBj1%w5E3fKY)L<%4P&L%_lQB77lFzF%xMp&N~+uSk$uTTVP3D*f_PKH_% zAX@!M7*w#s>BpAGeU>C6NRW<=PO)|p<5)mvp$XPqteVRjv@)t;vVavz{D z8X%h3BFqp!sHe=%PNzqAt$Bu9Rl$Y{1dN>a8MXhpgbyMhOr*aodvqBVI%DaoMbG%o zmF2}KDv3o6>zTZ4{Q>^Mk<&&Z5NIiHuadw>h>J37_0Iof6q#`DS>NmO{5JddqpJ`I zDj<_V0U47J0R}Y#5+Dl&2-g%vle6_v^26}Y{rW6LAE@W8eDs#8K1bvgS~nU4PgOE1 z31x0_Z)|L7WHU1KlZ*k4XlF2G0x&F@njyipJ7+ZGIiTMNAoa}BqD$`wbfC&!ytL_J z?+@%BWV$-37=5{`;Ul>)oVWrp0J}|RE0&9Wux&I~!YZLLjr9+*`%uexG3>R=^d~&T U=Z44)K-0yWk^`D`T74@^10`U_tpET3 delta 424 zcmV;Z0ayNn1%d^C3fKY)L<%6SH?!YaQ|x{IA;VxLF7*Qw*b}BKm=jVkIs)n$i_2^h zAU>&wRF4c`nBg+V%UI0kvUF=u8g? zdPixgWsqH~O7-R5EDZdl_YxpSS1MtpS_#rfk>#NZ+p=p^oFYBs96^tS_E5NbN#F*& z8X%t;vIu{$^XwW^&_5_}3_MU&!JnkeJ|H>irdT%-Z+Rjh5|xw>piV50g8UDRW7uF1 zU}Jcg`P96Ql~Hs0 zDj<_V0U47J0R}Px5+F};rU*E7cFeriQPN4R<~z|XBhAY5#^FGE{Xe}!4uD%0xlQdPj|Fv2ShE`$w&fUaVgjXc z*s6BAk*UuXfnZZ6CAL>(0xBBIYNZfc<|zQTx(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD{a-aBI^FvKLNboRi^*| literal 167 zcmV;Y09gMpfusTf0R%7$FMr3b@EF+sACumRy-Q_>ZwXYdt=ay+0W)) zmFez Vu$nE`>o<-`6q$jB@Dx(rptlkrlOP`F zxAVu~;h9OFf7Ltp{w8wFP_7I1)}NqJXa3;m8bk^pn*rE4S`1kMFo%96Kiu4iu{Ult zpf^mrMT|~59N?Uh5+HWiHayW#B&Pb#z5yESKF3KTGQ%zUEq}hGdBj1TxebycL<%4+ zAEbo<&V@xV!cdSUp^KoNXS16IIwU-%VSGXyqP$NMAU`SrF*8Yq+>BtK8K&F485J_B zw+4EryWD9VF;W;Ylp;h5Al7{;Xo)(7*G6-t_8X&ln+#1uZAW%UEm*9;YRbcjtMt3oROrveL;Q3;-4f>c0+{(2e zf-*!3Aej*%G%WS!pgR^&xEP0a#h2d(+cB(SvW6n14X&jrxDp`jbI2*+MG1b3#jpqC z&Kvzf!^N8}qa?}?J1BI#N9O=KL<%4v(OTY#>VI5!?twutpv1{QL6JK@lPjSal`kXb zSCH$A5+JGNR9akkt|7+P6m(V?b`s*uI~+L!rJRtfW#qN~aIZoj2YJeg>sGIHk)={R zwqa3P%Nro#Bs0x5Q`GunG{q7$N+97C&D5wKUOFaa!BO*{h*a@srA`Kq<=v-@Fw|lr oz$0r?Ahl7pjeNqnbY7f~L+^jo-(<~B6ZS%Yx*-mMpR!)%Eozf^2LJ#7 delta 810 zcmV+_1J(S?2FnJJE`R;LGVL&jdia=W+A7$}*X``&Zj1rza2C@cQ)+CtZ)_4EjuKD) z!6z*Qiv5K-XTt@bulixvtAu2qRmL2z10@CK8bk^pb^jvvS;6YQkuNkpGoBxuV|}-N zPa>voHb8ts&fFW55+I0oRj%vOWoI{;L0jswp*6_ej$h%GaDUEs42N$CQ3FXLL<%4w zhWdRogOHcooO{aiJqR^-`A%ht37j;-k9Ag$ZD2PNAii(t+@2WnYlFAq8f$^Vj*?@t zAc?y%Vii}#|C5TL>LNr6AWm!;ql((ow05a^Ta)KteK=R3mXSX%oiJkgCrQ?!$Pyq` z-tX_P;c0te4u2?muwxTSh3d_*t8k;%8!1tlFmKWFB18%x&3b$cHLl{}%2E#!?rE5E zk+rZj6CYuE+8-;2%sPw95+DH&UfK9Hw`A!gd-j1<*%Gnh7HkGBuPl&#TV!~nm%$=L z3Ly5-Y=NGZPapW4`L}{FpnhlwjsK2Eu-(>%BFT#WxSA3Hol$5FIavnq%I3Ls^6)2C)RKPH^QrH8t2RZ9|+_aO4hQe5|B%B(LM zR#_4tYkJp~OT*@Adch~vhrnHT?#zX-&f3B-)|9NxJ>fzc8X!p^>a8Gq9X|0M>{e~X zziAsDHh)JdV1VErvSIQWkb*`cAi(TA>ORhW-UWM;3BgsJq}H@#UGzJAL3vJ>6mVIh z(lSH}AmB%UffNyoqyN)g$mHL{ejg3f=r;D03sxrne*@WO84@53?H%H@1K^`7f1LR; zwN@|{t4bGeX9h^Z#h>WHKw^M8L<%6$#%5i=_kVkJ4gZ#ONVf;IaV+Hq-Z_XY+7r5! zRsN`t5+HCL#oExN)vp<=-6l!4IuvbELEhkNv$Z|^wO4T2to1@5+oV!~GQym9!Rnjh zmLJseQC^n$)m-1!(QD50(1;`vN+5mGdIllK^F`6M2;Qj1We;DaxsTYMTD&2;KEmw3!(2m{~%|`*#k2G_&a0dI zQo(1)EW1poj5 literal 97 zcmV-n0G|H@&@L%3EcLe9*nUEMr4q5*g~Mwp&GCk(dc%9jX+>@MSqO!vMV%%%cK<=r zGOOi)40i?X&2AR3YVfH5CN$F7>x$A#WsYus+pg;#VJEPfE!XQej!6`mfrjuE(lo(i DcWyC> diff --git a/msp/testdata/idemix/MSP2OU1/ca/IssuerPublicKey b/msp/testdata/idemix/MSP2OU1/ca/IssuerPublicKey index f0f4372c457418a5318926025164b31bedba06ad..b75c3f3ae32342290e3e35090eccf751fb0db4a4 100644 GIT binary patch delta 810 zcmV+_1J(S?2FnJJE`P`|bu|cOIn?QmP|i($cH!&Or|ccL|0`n#8Fi5biO~`uNU_A9 zKId=PecIq6T_|whoLe4ih4amsCMD0NW*f>^8bk^p7Q}$P12QBvHDJab2fV#<33bPc zM>?7b28#bAjJ#8QIh(5D6e{zxTCy1>AIFd8k*-)ZJ{VwXGR4e917gf^~bk@r@LeAgB18%xmkr;%-=f?3`{*=@#UypW zs?dFR7d<8u)th0NzGbZ85+JnJ3NGy$X?kB!Hw1Q*SkJ^E+`j}XBhq#3kWj3S@+cxi z3Lu>GdaOgfoFjUECeIFK4$5`vi+@rQAd8`0M9P~MvQ8CdOB1?~ z)m%Sn_$4wv2G9LKW!)`g)f4Y@*s6V zblwsm<^#q%Fu`~`))ez*Q539mvR)&prj$V%+Pds!2u zjY_|a^us2vC6~$SaYFER>`T7_N+3;H$x#wP@A`|_)i5a)A$B2D1F@BukStDmop?AF$rrtu-&gz9Y=dvd9a*>|xcQfaoqy%^X#){oixv+eL<%7P zZ)wE!xKtS_vd{ThS9ai`5-7$=g$z@uw;{OAM6s@j5+LL;VwL#x)>vRCPBeS6hHupQwZF!S*8C-c;YGL3S$`r# z3Luv4;GhhCIuG@LWUE&Zs}1@|G5jVbOjc$@!mP2Zdw=p0AOzgZz`QSIk4N+ z2W}D|)hE;9MF`((bIk*sc$y-Ldn|Fu_kZ06tqEE9SbK|A8X&g&iOpMN_$d{R98l~7 z!_uY%@qbmFE;g|?{cHXVgti%LF=FDF+UTATMkr}D}$h9f7g#z zgfc`5AYP3u>?12VV8^fCM2MuhrK~Z7Pacn&Lp?k)X7J_n77`#@uK|(x&-N)ntPcj0 zbdv*Gkh}EEJexbo^W=V=gJ}0UL<%5P^iKg@4u8C17K-Gt|pjTO^x+F+>DcgmlVN5C;bk!q@Mk-CN%7sOnFMICQ@_ z1T=(SWWh-MJ5_~Kr-lVV2qPYJsINqHo&auk!FJIa?@@xi%bVjMO6qz@M zT-n~xy{z23(C5I_$4YY8&xv|MPCnw}MrKxsAc(FcJsXtnrC<+tgCHxCD VpQ;z}_a20Z{8lQpgci%l^4{_mOGf|z diff --git a/msp/testdata/idemix/MSP2OU1/msp/IssuerPublicKey b/msp/testdata/idemix/MSP2OU1/msp/IssuerPublicKey index f0f4372c457418a5318926025164b31bedba06ad..b75c3f3ae32342290e3e35090eccf751fb0db4a4 100644 GIT binary patch delta 810 zcmV+_1J(S?2FnJJE`P`|bu|cOIn?QmP|i($cH!&Or|ccL|0`n#8Fi5biO~`uNU_A9 zKId=PecIq6T_|whoLe4ih4amsCMD0NW*f>^8bk^p7Q}$P12QBvHDJab2fV#<33bPc zM>?7b28#bAjJ#8QIh(5D6e{zxTCy1>AIFd8k*-)ZJ{VwXGR4e917gf^~bk@r@LeAgB18%xmkr;%-=f?3`{*=@#UypW zs?dFR7d<8u)th0NzGbZ85+JnJ3NGy$X?kB!Hw1Q*SkJ^E+`j}XBhq#3kWj3S@+cxi z3Lu>GdaOgfoFjUECeIFK4$5`vi+@rQAd8`0M9P~MvQ8CdOB1?~ z)m%Sn_$4wv2G9LKW!)`g)f4Y@*s6V zblwsm<^#q%Fu`~`))ez*Q539mvR)&prj$V%+Pds!2u zjY_|a^us2vC6~$SaYFER>`T7_N+3;H$x#wP@A`|_)i5a)A$B2D1F@BukStDmop?AF$rrtu-&gz9Y=dvd9a*>|xcQfaoqy%^X#){oixv+eL<%7P zZ)wE!xKtS_vd{ThS9ai`5-7$=g$z@uw;{OAM6s@j5+LL;VwL#x)>vRCPBeS6hHupQwZF!S*8C-c;YGL3S$`r# z3Luv4;GhhCIuG@LWUE&Zs}1@|G5jVbOjc$@!mP2Zdw=p0AOzgZz`QSIk4N+ z2W}D|)hE;9MF`((bIk*sc$y-Ldn|Fu_kZ06tqEE9SbK|A8X&g&iOpMN_$d{R98l~7 z!_uY%@qbmFE;g|?{cHXVgti%LF=FDF+UTATMkr}D}$h9f7g#z zgfc`5AYP3u>?12VV8^fCM2MuhrK~Z7Pacn&Lp?k)X7J_n77`#@uK|(x&-N)ntPcj0 zbdv*Gkh}EEJexbo^W=V=gJ}0UL<%5P^iKg@4u8C17K-GtU©?Zœ( -ä%ü 5Ÿªñ÷„ˆüV*µ„ËÈòÞ \ No newline at end of file +-----BEGIN PUBLIC KEY----- +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEPxN4FO+VZCjn9BQ1zhSurncwXRtGXjsF +TB4gZYYy5Wds0UHv3B8hiVMt6QfV38pmc5DAAy2IH6bu9cg3WtiDGbSyL8cPzMm4 +Z0mOasXUQHocwO95ssXOnmRr1n/LAOpi +-----END PUBLIC KEY----- diff --git a/msp/testdata/idemix/MSP2OU1/user/SignerConfig b/msp/testdata/idemix/MSP2OU1/user/SignerConfig index a8a85e31dfddf05f5d8d717ca76114b26d3e29fb..b871770a0fdac1687c5b83979d26a5ea3cda1dfb 100644 GIT binary patch delta 426 zcmV;b0agBm1%w5E3fKY)L<%4d7-uyDiKV6p-O?r+T{>YX%!T^q`wfYBJ61A+j3WFJ zAhg5eeaKDGf$D*;f^CyAnhSAi!bU_1-CBzQy;;BUOU( z(qRDE6t`Sj^7{j(buuRr0umr`@v;;Mz<`f}6@=XNiTf;6-2+Oa0vj*+k~x3NZH`sv z8X$#q4BClKMg9x$5NkLBOuxqr&hnC2G28@ zDj<_V0U47J0R}Y$5+JVHASwC6kDAh;FAaWZ(%@6RqsyL-&zD@B2&@B47QY$;PgOB0 z31x0_Z)|L7WHd7LlaB$7XlF2G0xPo(uDWdx9-@#p2l^_fj2JBA z5c6`TQYo13yz@Hu`@%dK(xGnxFmS*$Kf3no@{Yg!vjG&}8laz zAfNSh&E8={@}aX^BZT*!N1@oB z-)6LcBPESEvfdv{(0&~_dL?)QF#xKCNb;;)0SqABGd?jTf+brC-OhE*`}U|+7Du-d VJxubwHQV5xMJ8%Rqlx;D@|$4$!@2+f