diff --git a/include/pcp/defines.h b/include/pcp/defines.h index 4644f31..a562f1a 100644 --- a/include/pcp/defines.h +++ b/include/pcp/defines.h @@ -63,7 +63,7 @@ typedef unsigned int qbyte; // Quad byte = 32 bits #define PCP_VAULT_VERSION 2 // sigs -#define PCP_SIG_VERSION 1 +#define PCP_SIG_VERSION 2 char *PCP_ERR; byte PCP_ERRSET; diff --git a/include/pcp/ed.h b/include/pcp/ed.h index a720e6d..8198bf8 100644 --- a/include/pcp/ed.h +++ b/include/pcp/ed.h @@ -37,10 +37,10 @@ extern "C" { #include "key.h" struct _pcp_sig_t { + byte edsig[crypto_sign_BYTES]; char id[17]; - long ctime; + uint64_t ctime; uint32_t version; - byte edsig[crypto_hash_sha256_BYTES + crypto_sign_BYTES]; }; typedef struct _pcp_sig_t pcp_sig_t; @@ -55,6 +55,8 @@ pcp_sig_t *sig2be(pcp_sig_t *k); pcp_sig_t *pcp_ed_newsig(unsigned char *hash, char *id); + void pcp_dumpsig(pcp_sig_t *sig); + #ifdef __cplusplus } #endif diff --git a/libpcp/crypto.c b/libpcp/crypto.c index 8b1b26d..45859f6 100644 --- a/libpcp/crypto.c +++ b/libpcp/crypto.c @@ -32,7 +32,7 @@ size_t pcp_sodium_box(unsigned char **cipher, unsigned char *pad_clear; unsigned char *pad_cipher; - size_t ciphersize = (clearsize + crypto_box_ZEROBYTES) - crypto_box_BOXZEROBYTES; // $s + 32 -16 + size_t ciphersize = (clearsize + crypto_box_ZEROBYTES) - crypto_box_BOXZEROBYTES; pad_cipher = ucmalloc(crypto_box_ZEROBYTES + clearsize); pcp_pad_prepend(&pad_clear, cleartext, crypto_box_ZEROBYTES, clearsize); diff --git a/libpcp/ed.c b/libpcp/ed.c index 436bc0f..0a996be 100644 --- a/libpcp/ed.c +++ b/libpcp/ed.c @@ -72,20 +72,28 @@ pcp_sig_t *pcp_ed_newsig(unsigned char *hash, char *id) { pcp_sig_t *sig = ucmalloc(sizeof(pcp_sig_t)); sig->version = PCP_SIG_VERSION; sig->ctime = (long)time(0); - memcpy(sig->edsig, hash, crypto_hash_sha256_BYTES + crypto_sign_BYTES); + memcpy(sig->edsig, hash, crypto_sign_BYTES); memcpy(sig->id, id, 17); return sig; } pcp_sig_t *sig2native(pcp_sig_t *s) { +#ifdef __BIG_ENDIAN + return s; +#else s->version = be32toh(s->version); s->ctime = be64toh(s->ctime); return s; +#endif } pcp_sig_t *sig2be(pcp_sig_t *s) { +#ifdef __BIG_ENDIAN + return s; +#else s->version = htobe32(s->version); s->ctime = htobe64(s->ctime); return s; +#endif } diff --git a/libpcp/z85.c b/libpcp/z85.c index 300e2d6..bc519c5 100644 --- a/libpcp/z85.c +++ b/libpcp/z85.c @@ -102,22 +102,47 @@ char *pcp_z85_encode(unsigned char *raw, size_t srclen, size_t *dstlen) { char *z85 = ucmalloc(zlen); z85 = zmq_z85_encode(z85, padded, outlen); + // make it a 72 chars wide block - blocklen = strlen(z85) + ((strlen(z85) / 72) * 2) + 1; + blocklen = (zlen + ((zlen / 72) * 2)) + 1; char *z85block = ucmalloc(blocklen); + //fprintf(stderr, "zlen: %d, outlen: %d, srclen: %d, blocklen: %d\n", + // zlen, outlen, srclen, blocklen); + pos = b = 0; + /* for(i=0; i= 71) { - z85block[b++] = '\r'; - z85block[b++] = '\n'; + *z85block++ = '\r'; + *z85block++ = '\n'; pos = 1; } else { pos++; } - z85block[b++] = z85[i]; + *z85block++ = z85[i]; } + */ + + char *z = &z85[0]; + char *B = &z85block[0]; + + while(*z != '\0') { + if(pos >= 71) { + *B++ = '\r'; + *B++ = '\n'; + pos = 1; + } + else { + pos++; + } + *B++ = *z++; + } + *B = '\0'; + + //fprintf(stderr, "z85block len: %d\n", blocklen, strlen(z85block)); + //fprintf(stderr, "z85block: <%s>\n", z85block); *dstlen = blocklen; free(z85); diff --git a/man/pcp1.1 b/man/pcp1.1 index 632b099..826ee0f 100644 --- a/man/pcp1.1 +++ b/man/pcp1.1 @@ -124,7 +124,7 @@ .\" ======================================================================== .\" .IX Title "PCP1 1" -.TH PCP1 1 "2013-11-18" "PCP 0.1.5" "USER CONTRIBUTED DOCUMENTATION" +.TH PCP1 1 "2013-11-19" "PCP 0.1.5" "USER CONTRIBUTED DOCUMENTATION" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l diff --git a/src/signature.c b/src/signature.c index bec0073..100025e 100644 --- a/src/signature.c +++ b/src/signature.c @@ -97,6 +97,10 @@ int pcpsign(char *infile, char *outfile, char *recipient, char *passwd) { size_t zlen; pcp_sig_t *signature = pcp_ed_sign(input, inputBufSize, secret); + // scip + //printf("sigsize: %d\n", (int)sizeof(pcp_sig_t)); + //pcp_dumpsig(signature); + if(signature == NULL) goto errs5; @@ -226,3 +230,15 @@ int pcpverify(char *infile, char *sigfile) { errv1: return 1; } + +void pcp_dumpsig(pcp_sig_t *sig) { + printf(" ed: "); + pcpprint_bin(stdout, sig->edsig, crypto_sign_BYTES);printf("\n"); + + printf(" id: %s\n", sig->id); + + printf(" ctime: %ld\n", sig->ctime); + + printf("version: %04x\n", sig->version); + +} diff --git a/tests/bart.pub b/tests/bart.pub index f8273b4..7bc6f71 100644 --- a/tests/bart.pub +++ b/tests/bart.pub @@ -3,33 +3,33 @@ Cipher: CURVE25519-ED25519-SALSA20-POLY1305 Owner: Bart Mail: bart@local - Key-ID: 0x7AEFC16D88E43C2B - Public-Key: 1e2fw+W4a9:aMM[Z0fQ)4Vn!i}+SRl75j-AHe?mf2MK&8 - Creation Time: 2013-11-19T09:54:59 - Checksum: 55:DC:88:01:EE:69:EA:C5:02:B6:A8:22:36:50:A1:CC - EB:73:3E:EC:2D:74:FC:D9:B2:10:D3:B5:D9:16:72:32 - Serial Number: 0x91FEE742 + Key-ID: 0x9AD180B48F2746E7 + Public-Key: 0$U$)i[>V06d$n&N6ehq2.#]UW$MQy8-MrNt!j/uu&Qfb + Creation Time: 2013-11-19T14:56:12 + Checksum: 06:95:B5:78:15:E4:F7:DB:34:B2:02:ED:B5:3F:C9:6D + 4F:20:1F:94:19:27:32:31:7C:E2:8F:A4:C4:30:29:12 + Serial Number: 0xEBBF8898 Key Version: 0x00000004 Random Art ID: +----------------+ + | o | + | . + | + |. . . . . | + | o . . | + |= . . . | + | * o . | + |. . . | | | - | | - | | - | o| - | . o .o.| - | . o*.. | - | =..+ | - | +o | +----------------+ -1e2fw+W4a9:aMM[Z0fQ)4Vn!i}+SRl75j-AHe?mf2MK&ZM}j&L{OmyZyc!^/]nyFZz+T:qL -vB%cC0&as:WfARBo16v8cSVxh?6B9Sftn.qhoEK&Iwi6k*mbP00jw5fF5%DtUK<-hFa+uXZ -y>?CZ.lf3oACxnaseq+#cXwmxVJnT*84.L[5OLiq7JQTA:&U[p.d5Y}g]Pb:EA*0TzS3dbD -@!Z-l>ahp2fW!JLt=TVm7Pcf.arNYOK[bqdNQUe4J8>D6B/?P(CQ[>&^:ZNxHf22 -bVe>-IO?]/mQy2cOOZJjZTIW!CdX-NbXKsK+pmxm.y<:-ArM]@&c/wHBCX[s -KYObJC34eS+tPTc:Kiu%)!N)G6(9dA^W4NasM9Ks<0q>?vQTq0kX$vGvqC]z-v<%rEB.&ny -P:=z)T>0!ruz&gJX.h&+{MH>@XO2WPj[kd:]c&aKAaK]upf*v)QHy]OjPQ$WwvI^5W2TnRCyG -sGO4TEK8tLXrW!uNi?DG/jL5le<:ib:acObU.ukvS/@.]Kqf4i(ktCy*saPQsfoT=3Cx@be -e3U9$)IN37k$amgf/zAVi7kUWlOZ$d0@@r308!.5v/MGe1D&YDli3#= +0$U$)i[>V06d$n&N6ehq2.#]UW$MQy8-MrNt!j/uu]Y@S75-O9Mv]$?.q^!NtEu4[3ULQ*3 +Vo-nB)uSVbsk*VBo0GfGcp5NMsb^MqUj3:(i8nz(cq3H6.w60rb[8w#)?kG=ixxk.XFGa/pI9%^px=>Gl+ou22k)0+pTT*S6#IoIK3Ix#)L +Pr3<4W!(KgAU5yvR/Ep]g.t):??2QC*!fRka&uG!ojG2zvQTq0kX$vGvqC}NxLDX7cR3T@/ +ldGZoc+WNkcGX0k}d2Kh?H.ra6J=^vMW(p>Fy}FnM)ce@b>E*/EsTFQ}C4J&mpjX.KU7#?j +OZKaHWA76Y>1VHsv0H9BV?cKr9J.r3*r9ps$j-9>p1t6I=F3*xOLyH*K2Y7sL-vBz +It/w[arWjZZ>Fz*LLy$R.o -oV5/L9*Z=0i!C0S2[qh.mR^mgmQ&)![&<+&%vyM^JI{sd^{Gj5FkdqQ?ZMz=?X}&r[.2rcHd&4UhkuyBwEC=V{$JaWa>M-fSHlfliGBuweJ[trfsi!ZbLh]. -Kh@hc77XVWHvax<3>V=a!}&^fxKsegwbDH+Xml[g:lze?jDLh>>&LFbykFXJc%y(+5-@]:y+6Htc>T02)oy^pF)V&RA1=EWRXBv-eQF-rh)68A1fs - +4kNwnRosYGf:r/v}/uKOROHY&elN9jI+.GcW2m(phVP#E04#Sxrhrbt!6F@cCNp.oGY. +7]cf{>bclF.g>i=X8Ah&$g6H(O1dkN[GnOIYH)h^5y!@lb +xCtFZPGSKsnAtyFqqBsTr/UE-ye+GgMDXq>VC63ao(=%BvqGT/x<VJ)W1*}v9oc&mf2HN++3.wU +Z$.?f+O(WLGGusCX&PG>[rsKPN5&s=Awd:dsWX=DxCkcu?IeDj:5%BZ/j+fvAaCTTvJ1>l{ +dAjEsJ$[aj:Ot3Q?>-pgNxsmT7t)6r<-rpXf7vinEyO>QUXBeuwEwjzL&}yOrOw6Q>ezh?$ +VF&-]npg6giDMi/x}!uXsbctS&VaO]98RT+%Vn38q)mwOxClAjSeu@++t[1s9e7lTbQ{l(F +P{N#?i6+XygES#Ki5i&XgbQ:NlnZU30@@r308!.(}V3P@1JR#>Y8R*h ------ END PCP PUBLICKEY ------ diff --git a/tests/key-alicia-sec b/tests/key-alicia-sec index 385f508..0823cff 100644 --- a/tests/key-alicia-sec +++ b/tests/key-alicia-sec @@ -1,24 +1,24 @@ ----- BEGIN PCP SECRET KEY ----- Generated by: Pretty Curved Privacy Version 0.1.5 Cipher: CURVE25519-ED25519-SALSA20-POLY1305 - Key-ID: 0x7BDF786564A94A60 - Creation Time: 2013-11-19T09:54:59 - Serial Number: 0x96DA9F38 + Key-ID: 0x23E0082C8250DB56 + Creation Time: 2013-11-19T14:56:11 + Serial Number: 0xC82855BB Key Version: 0x00000004 -1d10ok&9wTrr(Qb7}b$E3%Xzt0oCfQ)6Q$byko!{iSN>e40u+@Y+LkP!yO?I([uuJveWh-y -sA![o?0&+I]<rWjZZ>Fz*LLy$R.ooV5/L9*Z=0i!C0S2[qh.mR^mgmQ&)![&<+ -&%vyM^JI -{sd^{Gj5FkdqQ?ZMz=?X}&r[.2rcHd&4UhkuyBwEC -=V{$JaWa>M-fSHlfliGBuweJ[trfsi!ZbLh].Kh@hc77XVWHvax<3>V=a!}&^fxKsegwbDH -+Xml[g:lze?jDLh>>&LFbykFXJc%y(+5-@]:y+6Htc ->T02)oy^pF)V&RA1=EWRXBv-eQF-rh)68A1fsrvJhcifZHSec%lWfh#MRFH +zliU2nzAK^JsWOnPXn<7fm@^FT&}@4g)AWW$O$O>4kNwnRosYG8/:Nn.^v}oixcz?Ff*t{R +Ff}J]4J)]a{l^ok)SLd0WSQS=TiBsSJQ3O{-fVlp +rs{mfZIC>/3^l+T}))0mG(ui>0y +bJXO?#7CN@H1G7giGKS5T69Qq!4M[p>xn4@u/q*3N>Ml8[CTldWv}/uKOROHY&elN9jI+.G +cW2m(phVP#E04#Sxrhrbt!6F@cCNp.oGY.7]cf{>bclF.g>i=X8Ah&$g6H(O1dkN[GnOIYH)h^5y!@lbxCtFZPGSKsnAtyFqqBsTr/UE-ye+GgMDXq +>VC63ao(=%BvqGT/x<VJ)W1*}v9oc&mf2HN++3.wUZ$.?f+O(WLGGusCX&PG>[rsKPN5&s=Awd: +dsWX=DxCkcu?IeDj:5%BZ/j+fvAaCTTvJ1>l{dAjEsJ$[aj:Ot3Q?>-pgNxsmT7t)6r<-rp +Xf7vinEyO>QUXBeuwEwjzL&}yOrOw6Q>ezh?$VF&-]npg6giDMi/x}!uXsbctS&VaO]98RT ++%Vn38q)mwOxClAjSeu@++t[1s9e7lTbQ{l(FP{N#?i6+XygES#Ki5i&XgbQ:NlnZU30rr9 +108!.(}V3P@1JR#>Y8R*h ------ END PCP SECRET KEY ------ diff --git a/tests/key-bobby-pub b/tests/key-bobby-pub index 6c70b71..a56525a 100644 --- a/tests/key-bobby-pub +++ b/tests/key-bobby-pub @@ -3,33 +3,33 @@ Cipher: CURVE25519-ED25519-SALSA20-POLY1305 Owner: Bobby Mail: bobby@local - Key-ID: 0xFEC0AFC9E0E38457 - Public-Key: 0#1e35=WR)p92aZYm/h$byX2/UCCE[rqXzSe/:L.a]?Py - Creation Time: 2013-11-19T09:54:59 - Checksum: 1E:3F:73:81:BD:5A:E3:2C:68:2A:7D:FC:47:06:BE:B4 - 52:EC:A8:F3:07:9D:52:4D:0A:4F:CE:18:5A:AA:68:61 - Serial Number: 0xF32F4352 + Key-ID: 0x1749A29D12CA3FC5 + Public-Key: 1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akff8$$L + Creation Time: 2013-11-19T14:56:11 + Checksum: 29:26:30:F0:37:EF:EC:8D:4C:8E:0A:0D:CD:0D:A1:21 + 51:89:EA:56:F9:54:19:D0:EB:69:F4:7F:8F:2D:E7:E0 + Serial Number: 0x73C06B1E Key Version: 0x00000004 Random Art ID: +----------------+ - | o.o | - | * | - | . + | - | . o . | - | o o + | - | o = | - | . . | + | . . | + | * . | + | = + | + | o . . o | + | . = o | + | o o | + | . | | | +----------------+ -0#1e35=WR)p92aZYm/h$byX2/UCCE[rqXzSe/:L.bej(AY9}pIWv4P#w/%ei]HbEQ$HCyIcqF&bN*x7<)>ND0FsZUUj^LH -sum?.7wI)=R>}I1IB)G]1j-S(/Ds$4lYo8%*N8JvmTM@Z]HZh?QPULNUoa[k}O8fvSbZ+C%Dg:v{%fN{]pZsiv-g@: -.j4zL99S&M}l2jb/]Yk8xk/5X7y@Hj{BjPUq15l[t[B&sh){^4d+^c8XalUGG-SKASh1lm5 -H}ziJXTF:-SH[ih.TiqHCj62N&JD5kfgLe8rFsjNFuEKyQhfLDn6pVS34SooYD#1xFRX{HwWYF*@ElqhnZ>BzO -U!#K:((j!Jmme:{mNGg8fHW=Sg=mh(0@@r308!.5v/MGe1OjolqucW% +1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akffmc5iOurCi1Ip/71wZ^})-qyTe}4KGy +@QWuan[+6[qhs{@*4)9kryQwSUVp:95@hDe#84PLpx8[fUde?qqAvuXJm:nGTbv?r.7K5 +s{V=V&zf/G+6!$r6*]04NGll57E}UjBY}vd+R6{D(llxpmjV5)qAg2reBR$=4ZX)c2q3bG6 +PvKoilCEXzM&vx90sM!k{Smq2dsOiC%7+2.P0JX5c*w0GWn1CDR%aF@& +[>]aU-+Qbax29{}H +th(:gtcA7dRNYZv6ukJzX654kwI{jM4EWg0fcgQw}a?NqwU7NwP/RujCSvP&L5Im#=)nF5! +8.ZCoaNYZ[h-9JXgc4-Sgdat-mNG3k0@@r308!.(}V3P@1ARv]9SMfu ------ END PCP PUBLICKEY ------ diff --git a/tests/key-bobby-sec b/tests/key-bobby-sec index c4cc114..37ae37c 100644 --- a/tests/key-bobby-sec +++ b/tests/key-bobby-sec @@ -1,24 +1,24 @@ ----- BEGIN PCP SECRET KEY ----- Generated by: Pretty Curved Privacy Version 0.1.5 Cipher: CURVE25519-ED25519-SALSA20-POLY1305 - Key-ID: 0xFEC0AFC9E0E38457 - Creation Time: 2013-11-19T09:54:59 - Serial Number: 0xF32F4352 + Key-ID: 0x1749A29D12CA3FC5 + Creation Time: 2013-11-19T14:56:11 + Serial Number: 0x73C06B1E Key Version: 0x00000004 -0#1e35=WR)p92aZYm/h$byX2/UCCE[rqXzSe/:L.a])M(*Z#nGM3zR%pjJX:[=CXgt[h]{B -!jK4C+9/ct!.39Y9}pIWv4]8t-l/O%m(nF#wtlMbGbP!j/?cqDzz3/$HIL5b[KKBKe4lyPH5jyy3a2hnSt -CP2:BHc[j>T}$h3KRXkK#M/+v>qAEN0}N7t%1eM4cgp64j[J}e6vTd%87&wSL:C=w[JA0u{ -U5rBeScCR1n61U%?Q9&gxmkeH-{ag]=IR<3ARQg-&*aqFb4mMOiXGoBP#w/ -%ei]HbEQ$HCyIcqF&bN*x7<)>ND0FsZUUj^LHsum?.7wI)=R>}I1IB)G]1j-S(/Ds$4lYo8 -%*N8JvmTM@Z]HZh?QPU -LNUoa[k}O8fvSbZ+C%Dg:v{%fN{]pZsiv-g@:.j4zL99S&M}l2jb/]Yk8xk/5X7y@Hj{BjP -Uq15l[t[B&sh){^4d+^c8XalUGG-SKASh1lm5H}ziJXTF:-SH[ih.Tiq -HCj62N&JD5kfgLe8rFsjNFuEKyQhfLDn6pVS34SooYD#1xFRX{HwWYF*@ElqhnZ>BzOU!#K:((j!Jmme:{mNGg8fHW=Sg=mh(0SSi -208!.5v/MGe1OjolqucW% +1lmvl2*#Rtt@yvCP&qw$TgU0A083o(!w=8s0]Akff94vs*^&{c!M<:ygH9Oj@o+CQ-5YL44 +@(Ewr>Ch*8gaZ@OurCi1Ip/71wZ^})-qyTe}4KGy@QWuan[+6[=k:}K^kAe?9Gz:]b.9[G5 +50*1D/jm227vzE57QPjI<9!W=Y5aKW}-TBpPl3Vtuh:2-$Cm]qhs{@*4)9kryQwSUVp:95@ +hDe#84PLpx8[fUde?qqAvuXJm:nGTbv?r.7K5s{V=V&zf/G+6!$r6*]04NGll57E}UjBY}v +d+R6{D(llxpmjV5)qAg2reBR$=4ZX)c2q3bG6PvKoilCEXzM&vx90sM!k{Smq2dsOiC%7+2 +.P0JX5c*w0GWn1CDR%aF@&[>]aU-+Qbax29{}Hth(:gtcA7dRNYZv6ukJzX654kwI{jM4EWg +0fcgQw}a?NqwU7NwP/RujCSvP&L5Im#=)nF5!8.ZCoaNYZ[h-9JXgc4-Sgdat-mNG3k0SSi +208!.(}V3P@1ARv]9SMfu ------ END PCP SECRET KEY ------ diff --git a/tests/keys.cfg b/tests/keys.cfg index 7d7e367..6bc6e50 100644 --- a/tests/keys.cfg +++ b/tests/keys.cfg @@ -1,6 +1,6 @@ -bartid = 0x7AEFC16D88E43C2B -bartserial = 0x91FEE742 -idbobby = 0xFEC0AFC9E0E38457 -idalicia = 0x7BDF786564A94A60 +bartid = 0x9AD180B48F2746E7 +bartserial = 0xEBBF8898 +idbobby = 0x1749A29D12CA3FC5 +idalicia = 0x23E0082C8250DB56 mailbobby = bobby@local mailalicia = alicia@local diff --git a/tests/unknown1 b/tests/unknown1 index 7cfc206..a4c5a02 100644 --- a/tests/unknown1 +++ b/tests/unknown1 @@ -1,11 +1,11 @@ -117IsVZ{MQeqspa72t2[5JxXj-}W!lJ*v.89pLi*Ncm!mEJDU@ABW]MdqUH#x5QT6%&-xJ^K9%Fh.FQjWPBFYS(DJJLLnNVYJ?/&&#IitIYm>L^U[PQoWmcVqk6p -tIf-F:1SJX{%fp}1AG!rp.}YO2WxCg5$ogL-d:Ft.a[030WFR/?.10JpCDEGO.{C*QOC?Sl -^)KkvlGN6sj>]tUcY?T=oJmd>>ZQ(lladd=t1h6GW1(q?]qmr.1?-aFf +iN-ind-7XB/(-^m8faYlpRo^FO-}R-92:Sa->d[?O(ahZzFrW0vqYQvy&r/(yYExHYc4%ka +s5B4aN$G/i@$+9D]Mny)*RC>rxu-3/WHdzM/-aB/W/U@-4Xz=7NjO)]^GX)a!W7z4{lNp[i +9+Jx/yGLU$Zl64y[o(L-TjS4qM-[13*<@ykU[Ad8QZgC}SZmk=}Qg^TL*f!$D-0@@r308!.(}#uY%1HVsi9rl6t diff --git a/tests/unknown2 b/tests/unknown2 index 86c830e..0763c95 100644 --- a/tests/unknown2 +++ b/tests/unknown2 @@ -1,15 +1,15 @@ -117IsVZ{MQeqspa72t2[5EiLe3XC2+ZEXP$^.LcU[T6m5J1&Xn.Lq -kCg%Rf7uQj}37$dDZ{Hdt!rYCIKU2PiLopVHGX-jEYVwKWf/Eaz!^^LJxXj-}W!lJ*v.89pLi*Ncm!mE -JDU@ABW]MdqUH# -x5QT6%&-xJ^K9%Fh.FQjWPBFYS( -DJJLLnNVYJ?/&&#IitIYm>L^U[PQoWmcVqk6ptIf-F:1SJX{%fp}1AG!rp.}YO2WxCg5$og -L-d:Ft.a[030WFR/?.10JpCDEGO.{C*QOC?Sl^)KkvlGN6sj>]tUcY?T=oJmd>>ZQ(lladd -=t1h6GW1(q?]qmr@8@wBa3x=@:bJ{hS1j]S:tr!/@6GjHTi88@^VJd5rXc*KVxJVG(@7&[YSa%nqnZ*T1Szd& +/bP-hA1&-J9WlZHv5UqyJNkzKin{(Q@[eB?Nupc1xP5:kfWJC+=LypT2.[Jz#3aaUm)j&-r +z!7YPT*di]YBo}>&tJ8RDB7tF6NxSVcqL0R(Uf7enM}x:9]Ifaizddr)0phoo9Dm]1NA2c? +r!3+KqZ<:#q$WWJd8QiQhXKQhR8aBmR{#@cGElmKZ.VYXUYmA.1?-aFfiN-ind-7XB/(-^m8faYlpRo^FO-}R-92:S +a->d[?O(ahZzFrW0vqYQvy&r/(yYExHYc4%kas5B4aN$G/i@$+9D]Mny)*RC>rxu-3/WHdz +M/-aB/W/U@-4Xz=7NjO)]^GX)a!W7z4{lNp[i9+Jx/yGLU$Zl64y[o(L-TjS4qM-[13*<@y +kU[Ad8QZgC}SZmk=}Qg^TL*f!$D-0SSi +208!.(}#uY%1HVsi9rl6t diff --git a/tests/unknown4 b/tests/unknown4 index fde1cb5..6b3d527 100644 --- a/tests/unknown4 +++ b/tests/unknown4 @@ -1,2 +1,2 @@ -0yzGIvaO]*=f%2j{IN3RyjMVfDkqOCCWa%iGKjQA4sv(!qEVm6!Ek-M>gFR&C13T-*gZ+fyQ@!9I* +hRt+6n.(bqn5B4myD2$*etzI5-QwmkMKXNbeq4C8Dk)q7B4=)EeWyhtM>IV1pZ7:vF&!0 diff --git a/tests/unknown5 b/tests/unknown5 index a6571e0..b63caac 100644 --- a/tests/unknown5 +++ b/tests/unknown5 @@ -1,3 +1,2 @@ -12&LmmMip+h8WoSiw:2WfAq7M000000000008!.5wb(Pf0yj1r?y^{}ZAt{nLMo443Ht[22 -+B]Zw9l8C8u&*uVXnJ>]pFu>N95pAc<).Ll5X12&Gj%0UH3rJE]GES2lj-7000000000000 -000000000000000000000000000000000 +16LDgD]-t>Q1x*FrY.@b*&DTJ6N<9wQMrWGh5/.A +AxT^(g2ne2@jq9fFCEwlPu?UfHOk+huiZS000000000008!.(}#uY%0SSi200000