fixed tilde z85 headers in signature stuff as well

This commit is contained in:
TLINDEN
2014-02-24 19:52:57 +01:00
parent 51858aeda2
commit 99f611ab80
14 changed files with 100 additions and 99 deletions

6
TODO
View File

@@ -17,6 +17,8 @@ vault checksum: add keysigs as well
enable formats for secret key exports as well
Add newlines to headers in define.h, so strlen() later catches the whole length.
Z85 headers:
- currently I use "----- BEGIN ... -----" and "----- END ... -----" as
header and footer for various z85 encoded outputs. The problem is, that
@@ -42,10 +44,6 @@ Z85 headers:
is marked as to be ignored which could be saved as a state when using
blockmode.
PCPSTREAM changes:
- enable determine armor mode of input, parse headers, comments
and newlines away, decode and return the binary result with ps_read()
as before.
Python binding, e.g.:
py % cdll.LoadLibrary("libsodium.so.8")

View File

@@ -81,13 +81,14 @@ size_t pcp_ed_sign_buffered(Pcpstream *in, Pcpstream* out, pcp_key_t *s, int z85
crypto_generichash_init(st, NULL, 0, 0);
if(z85)
ps_print(out, "%s\nHash: Blake2\n\n", PCP_SIG_HEADER);
ps_print(out, "%s\r\n Hash: Blake2\r\n\r\n", PCP_SIG_HEADER);
while(!ps_end(in)) {
cur_bufsize = ps_read(in, &in_buf, PCP_BLOCK_SIZE); /* fread(&in_buf, 1, PCP_BLOCK_SIZE, in); */
if(cur_bufsize <= 0)
break;
outsize += cur_bufsize;
crypto_generichash_update(st, in_buf, cur_bufsize);
ps_write(out, in_buf, cur_bufsize); /* fwrite(in_buf, cur_bufsize, 1, out); */
}
@@ -104,10 +105,10 @@ size_t pcp_ed_sign_buffered(Pcpstream *in, Pcpstream* out, pcp_key_t *s, int z85
size_t mlen = + crypto_sign_BYTES + crypto_generichash_BYTES_MAX;
if(z85) {
ps_print(out, "\n%s\n Version: PCP v%d.%d.%d\n\n", PCP_SIG_START, PCP_VERSION_MAJOR, PCP_VERSION_MINOR, PCP_VERSION_PATCH);
ps_print(out, "\r\n%s\r\n~ Version: PCP v%d.%d.%d ~\r\n\r\n", PCP_SIG_START, PCP_VERSION_MAJOR, PCP_VERSION_MINOR, PCP_VERSION_PATCH);
size_t zlen;
char *z85encoded = pcp_z85_encode((unsigned char*)signature, mlen, &zlen);
ps_print(out, "%s\n%s\n", z85encoded, PCP_SIG_END);
ps_print(out, "%s\r\n%s\r\n", z85encoded, PCP_SIG_END);
}
else {
ps_print(out, "%s", PCP_SIGPREFIX);
@@ -134,12 +135,12 @@ pcp_pubkey_t *pcp_ed_verify_buffered(Pcpstream *in, pcp_pubkey_t *p) {
unsigned char hash[crypto_generichash_BYTES_MAX];
char zhead[] = PCP_SIG_HEADER;
size_t hlen = strlen(PCP_SIG_HEADER);
size_t hlen2 = 15; /* hash: blake2\n\n */
size_t hlen2 = 17; /* " hash: blake2\r\n\r\n" FIXME: parse and calculate */
size_t mlen = + crypto_sign_BYTES + crypto_generichash_BYTES_MAX;
size_t zlen = 262; /* FIXME: calculate */
unsigned char z85encoded[zlen];
unsigned char sighash[mlen];
char z85sigstart[] = PCP_SIG_START;
char z85sigstart[] = "\n" PCP_SIG_START; /* FIXME: verifies, but it misses the \r! */
char binsigstart[] = PCP_SIGPREFIX;
char sigstart[] = PCP_SIG_START;
size_t siglen, startlen;
@@ -154,8 +155,8 @@ pcp_pubkey_t *pcp_ed_verify_buffered(Pcpstream *in, pcp_pubkey_t *p) {
/* look for z85 header and cut it out */
if(_findoffset(in_buf, cur_bufsize, zhead, hlen) == 0) {
/* it is armored */
next_bufsize = cur_bufsize - (hlen+hlen2); /* size - the header */
memcpy(in_next, &in_buf[hlen+hlen2], next_bufsize); /* tmp save */
next_bufsize = cur_bufsize - (hlen+hlen2+2); /* size - the header */
memcpy(in_next, &in_buf[hlen+hlen2+2], next_bufsize); /* tmp save */
memcpy(in_buf, in_next, next_bufsize); /* put into inbuf without header */
if(cur_bufsize == PCP_BLOCK_SIZE/2) {
/* more to come */
@@ -320,11 +321,11 @@ size_t pcp_ed_detachsign_buffered(Pcpstream *in, Pcpstream *out, pcp_key_t *s) {
unsigned char *signature = pcp_ed_sign(hash, crypto_generichash_BYTES_MAX, s);
size_t mlen = + crypto_sign_BYTES + crypto_generichash_BYTES_MAX;
ps_print(out, "\n%s\n Version: PCP v%d.%d.%d\n\n",
ps_print(out, "\r\n%s\r\n~ Version: PCP v%d.%d.%d ~\r\n\r\n",
PCP_SIG_START, PCP_VERSION_MAJOR, PCP_VERSION_MINOR, PCP_VERSION_PATCH);
size_t zlen;
char *z85encoded = pcp_z85_encode((unsigned char*)signature, mlen, &zlen);
ps_print(out, "%s\n%s\n", z85encoded, PCP_SIG_END);
ps_print(out, "%s\r\n%s\r\n", z85encoded, PCP_SIG_END);
free(st);

View File

@@ -156,7 +156,10 @@ size_t ps_read_next(Pcpstream *stream) {
}
size_t ps_read(Pcpstream *stream, void *buf, size_t readbytes) {
if(buffer_size(stream->cache) > 0) {
if(stream->cache == NULL) {
return ps_read_raw(stream, buf, readbytes);
}
else if(buffer_size(stream->cache) > 0) {
/* use cache */
return ps_read_cached(stream, buf, readbytes);
}

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----
22+xo&VP4UGh@KXT$:IpoIwo:<oKj@x3U+L=MiwvdeTW/0S-{(R1eV:K%1^8{o1X&B#+w}y
sPO6oxU-=*f2]+IJQa&CFj2j<PSub-R*9-0YZgvvLpTeMr=:V&pdeDixEl-bo^9)000040-
F%k&S5@U1oRSV{f[1400AQc?s+pT000Gy00SAaB7GxavqJVA5ut^h01xRx1POWzCwZ#jlsB
[R0000i6Awmo3t<i=y*{*[Bu<UXv{%fN0003s08Y#(bsCIHS}cC*Slg/(/QTlsO)x[wDkM[
r=-4a9&]Os[{RNBJW(z2AD%S{c/!iE:3jPMjxE1QIJ-/y206!m]Z%>$W75Q(sHH4yC*uSpj
6Q?pArQ2f#GNts*!K=dlz9tp{1>a!vrhbAbOY7SP-[!WPc6Y.Stywuw?#A-S
------END ED25519-CURVE29915 PUBLIC KEY------
~~~~~BEGIN ED25519-CURVE29915 PUBLIC KEY~~~~~
22+[E/=.$41#M]-p3Z*%mJukC}Az}B1oy^NZQodOb+b/v<qySc6H5d^=p/Ue@6[.W=ZtoIf
rE+un7tFVW$#33:XcMgzw3&PZ)7ekwL}7Eqd1d[NpaMnHj@&9s0p6!?cy46bo^9)000040-
GFA*5I9M1oRS&QfmJ%00AQc)4NR.000Gy00SAaB7GxavqLtPY&$Ep01xRx1POWzCwZ#jlsB
[R0000i6Awmo3t<i=y*{*[Bu<UXv{%fN0003s01<4EQ*G9>pHh6fA/A944@{IMelG{62mGJ
m9=#BHf}C+wnm]q@Ts>0&wN0UDH>Rm7+]8@<[fYHG>Em7026*4BOF5#qVZBr+RPvPrmFy:#
v5khdlw:Ym>>*%uPeej4FJk^>lj{byzcNiGCk#%?ht]4ni@+5PJxsHLFb/MH
~~~~~END ED25519-CURVE29915 PUBLIC KEY~~~~~

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----
22+xo&up=TJq/H8i=qIeA%U5iGbic3w$dC6kLc:p.fJ=&pdMw&ZqH#gQ=QFKRO?:=)r@XG7
?kfpERt62d?W(20JO&n?B)Fwix0ppXm+VXP*52nl((un]KG@P?x{}nFm!)8bo^9)000040-
F%k&q-&T1oRSV{f^}300AQc?s+mS000Gy00SAaB7GxavqFyGHg*L!01P+z1PO:BCwZ#jl2p
mBx<*#w02caE1on<EvqfK^y?Wx[vl!TEv{%fN0003s0fCNrWy.NOiKGz1&k>.&yPsfgJj1n
1xc9hC8YWL[E]PV#0v{n-{LG0b6CaKdGehPuS$5@.yoIS!umb703sV)YsqUen6BDX(NNhog
2r/mj%gl*uGxA4BB1CET3iI!W2nf.w@H:D!/@w*&iQKShk6.fUC]=Y?L2eLTOb-J?
------END ED25519-CURVE29915 PUBLIC KEY------
~~~~~BEGIN ED25519-CURVE29915 PUBLIC KEY~~~~~
22+[E!fex*BR+=DXNjIW*d]B9yhJyNrMg0#a!%V*Xbws>g4<g1]xVgVHyJne2T@q.hh[Vvc
Y}(Imx2$E?B:U2pl.@^*{KGDffo*GcI+^eyGIhZ&MZCAPR.Pxmd?(^s1sp[bo^9)000040-
GFA!C]NH1oRS&Qe.f[00AQc)4NCV000Gy00SAaB7GxavqJja2djBh01P+z1PO:BCwZ#jl2p
mBx<*#w02caE1on<EvqfK^y?Wx[vl!TEv{%fN0003s0e-H.xJaP(BoT*HH[-oOFqW7(I>J+
iHwx}-&tG+bR-@GioqlzuJq[GE*3My.aX]SmgU:zaB%=y].Owpf1Al4i0FCA>lF<{mMi$2>
s=p/)jfQgIX:Qi:EGr6&^d)R2%a/@Th!*(Uhi>$WMI+l}oi%=1Yj[(RwQ{deEe<lE
~~~~~END ED25519-CURVE29915 PUBLIC KEY~~~~~

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PRIVATE KEY-----
nh6]+t/^U%{RPo-n5ITwnnLL=:fW*qy>{Hk[L8JxCJwcIciQ=OTOX65qmUv1p>^m=Of&W^4
ozR-m9XQddU0[anustRmczs9{Qs{>TQ+^:^mw9L2>v.n6TAcb/0hYgq7.Dg?U[GcBBViJS4
n}H=AZ(&[!T$ds31r3%0=]@<eZ/w^<bE2KTKFyj>jA!Yf*v8U5=[aCf?jVi}gEHkUo>A/]r
G()uc].p#=!/{2EwMNYKRjh@(WSWjE8EvuA!1HJ968n:NeZ7t}23ojc)ccZ[ZPY+=I>5$An
iUro<ro:)Vfyd09Vmd&795j2}zMcN6jBR28>k!Fdq7Oe3}B}K00>)phQWRurxUx:P&5[F44
z7K.&-Ga%mko-AJ0spBbjrtESzoNTMMFOoK%mYEkfeB&ve:D@t>95TRk8Mw2M+@!6
------END ED25519-CURVE29915 PRIVATE KEY------
~~~~~BEGIN ED25519-CURVE29915 PRIVATE KEY~~~~~
b)<0bbd}YplZUMB5il+5:yT5rzgMmfMGzVsol@fivj)]6gVuEx.rgTm.XgQcQmP&>bOo(6V
d5=Wl5FnFQ{.7iH(:rE?Yjnxx*H#Vx*qH5H1zGu-x9OgK.aqgH+k[aID6Qef^.98y=X(Umu
zUH0tlM6TJ/Egz./:3/^QtOu?Cv<Dt$d}LElYm)QZKM&pcUnglDSXO=(X)zAh2BqUQQqV9#
UDsKhBI73?dDNd(CqiO@v7nz!a3kbm0R:3h?M!T){&(1p9VQkzNFq%z:cmGStwV0zn-b?xh
&tMcN8[Qe$}UsV>SBC>6[gto2J&gQhxFhOir4qen:9QXK)y]q80zoP6L^eBLW^%Rk4T3ex%
M[UiZ6c:4)PaZfE+$QZWql}6F:AYon<iUKU?Fc#LeZxeHt($]S=FrmV]3}wKQ=5hM
~~~~~END ED25519-CURVE29915 PRIVATE KEY~~~~~

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----
22+xo&usLtBPu:n*m+yBwDS[yPQC=s+4TG/u9QO566&A+Ap51hLamiWdIu4EbhO<Yh1ncMq
PTII:Nkr[aD=iGKd<t}i$h]XtHKE1?z5[HM<*wK&>/KLanU?YRLhN7CUFhXbo^9)000040-
F%k&S5@U1oRSV{f[1400AQc?s+mS000Gy00SAaB7GxavqHLMTKWvK01GXy1POZACwZ#jlt{
sxC(N*A6bgAH01iTLx(4l%vQ:QFy&r/(yYBCn0uh3+3WXH/aj@2g@U4h&A.[suZOrEcxt:S
pz/=LgpS9et:befV3/ZKE%2.em:}EQwd02=srn*U=[4^{my#U{V>3KS&T4*C2?HIf]k{wAb
eU^JLY2nqpr#d5QWCan$*)UCv8DDBLQiZ#.r-thxN2@:5nmY!{SRT1o2(Bb(
------END ED25519-CURVE29915 PUBLIC KEY------
~~~~~BEGIN ED25519-CURVE29915 PUBLIC KEY~~~~~
22+[E!/&)#+yclyjgq?Y9P}g0]H-<!R<eYon.0^c57IQQ.Iot>5>PqR?^-neRWuv(BqUQ0q
wUX:VK[pL!I6viWj2ubRztI:1pwzz9!Kc*H53+pMJIjUfHMo@]qo%0yI:7]bo^9)000040-
GFA/8L^J1oRS&Qe}r{00AQc)4NIX000Gy00SAaB7GxavqE8AG8U/J01GXy1POZACwZ#jlt{
sxC(N*A6bgAH01iTLx(4l%vQ:QFy&r/(yYBCn0uh2*MY}4Ts:6[Y!T3<eBBjcwSVzlrE/${
D!+fvhY>tzq-D:XF-Dq*srnDc^)ed+.9wMS76]gnTr+Chj!dz%]vUIqNK)IH+Y.}tzSp4dx
O9$ZdRB[0N5QD#hgeq:29t9${Mmoyhkd=1.vK6]i<B>PGRk*enlj:zE=ZU:J
~~~~~END ED25519-CURVE29915 PUBLIC KEY~~~~~

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PRIVATE KEY-----
Co7vyr/c(-D02qI>CpF/BlSfb7fVB/pCVA-VIUt!!^tf+ulAL*:9sEvXapLZjMHNxW.rjjG
s}XY1!8T<AoC.n318wTg)uZxuWSeE:SZy!nM>.@w)[1PQc)4zLf94=tmpyQhg}C@h3q5F[H
/QA*(>XR6]!lZZ$f=Ax0#Tlu-K${>0*%sM!}-Gz2nC9f#+ZLUM5o[JafYtK3FNYc4!^@Tn]
V{WPck&bYgnK1qxn.i=nxd6*CxlarQgO]K@n@3)P8kXe2NzVYNq$]VfXT>D>FJOwfN@0yqF
-Uc+3sIg.umqi:9!AQ!5RG6HWgM-4]bzQx}gO<5u@k&Fl)ZL5wo@VAq5U!RJDPtvV<QAo=v
=-N-/z$lzL5T$RJJ3b<Q<N>#4J}3$t2vLbh&#Xy$rkTK%6E1V.7F4T#D$nyI
------END ED25519-CURVE29915 PRIVATE KEY------
~~~~~BEGIN ED25519-CURVE29915 PRIVATE KEY~~~~~
s/Kxk/+qqBnP!erxq{]ai6+BkWc{nC=Xy+i9}+LSR)ZfN5Cm*4[N?Ra!JFm]*POClYeTcw)
q[juqJ-}Pi1ht!j8l$IM8nLKaIfY/JuITR:J5#j/#H3dFY=YWW%AhfyCm2@+nzd12SL(]i$
#Za6b%^GyG[U.qS%tHb5YvVQg/4KvdEEoM!}Cxk[ci3sRA$aeSngGa6Slj5z&u7/^kNX2h*
(*yV15+HfdwcE&H/k<5*Ih2Iik+1F^WJJIK@7jE>jmQS0P5)sZi#ZaLOI>-q-ShW$%i(h>V
Th(wzVmBnjg2a32wZ5xyf?PkbNmh!oza-3PL2$itvb)ih/yK!%HP}*iaS@+CPSJdjb.q-iG
+MIh1CxgeRL*Scd+e&F%o.pMf2p>LMHYtBH0]SuWZJ3f:6(&%TgAW&05e1}3
~~~~~END ED25519-CURVE29915 PRIVATE KEY~~~~~

View File

@@ -1,6 +1,6 @@
bartid = 0xD6FBCA192A69BC19
bartserial = 0xBE9710AB
idbobby = 0xA907B927849B39F9
idalicia = 0x5F6F5F2B1FEFF482
bartid = 0x81E0427F3EE40B39
bartserial = 0xEDCCBD5B
idbobby = 0xEDF476444C8B5721
idalicia = 0xD467BA4B3187236F
mailbobby = bobby@local
mailalicia = alicia@local

View File

@@ -1,33 +1,33 @@
size_t secret_a_len = 32;
unsigned char secret_a[32] = {
0xb8, 0xb6, 0x65, 0x7e, 0x5b, 0x6b, 0x7b, 0x8d,
0x94, 0xc1, 0x8c, 0xef, 0x22, 0xbd, 0xbc, 0x16,
0xea, 0xf7, 0x62, 0x88, 0xd2, 0x87, 0x07, 0xb5,
0x95, 0x1c, 0x88, 0x3d, 0xde, 0x8d, 0xb9, 0x40
0x48, 0x59, 0xdb, 0xdb, 0x16, 0xfe, 0xa0, 0x17,
0xc8, 0x34, 0x38, 0x32, 0x29, 0x41, 0x56, 0xf1,
0x35, 0x5d, 0x20, 0x52, 0xa2, 0x54, 0xeb, 0x67,
0xb2, 0xd9, 0x5d, 0xa2, 0x90, 0xbc, 0x19, 0x55
};
size_t public_a_len = 32;
unsigned char public_a[32] = {
0x3a, 0xe2, 0xd2, 0x7d, 0xae, 0x30, 0xd0, 0x8f,
0x28, 0xa6, 0x8e, 0xb3, 0xec, 0xaf, 0x86, 0x66,
0x31, 0x13, 0xf6, 0xdb, 0xf0, 0xc5, 0xf8, 0xc0,
0xc1, 0xde, 0x4e, 0xf0, 0xb2, 0x54, 0xe8, 0x68
0xfd, 0x9e, 0x3b, 0xe5, 0x99, 0x13, 0x22, 0xf6,
0xc8, 0x42, 0x10, 0x6e, 0x75, 0xd5, 0xe4, 0xcd,
0x1d, 0x69, 0xbf, 0x31, 0xbc, 0xfc, 0x2c, 0x27,
0xb7, 0xd2, 0x0f, 0xcc, 0xa6, 0x6e, 0x92, 0x38
};
size_t secret_b_len = 32;
unsigned char secret_b[32] = {
0x68, 0xe2, 0xd6, 0x8a, 0x3d, 0xbd, 0x16, 0x13,
0x29, 0xcc, 0x8f, 0x8f, 0x32, 0x44, 0x78, 0x04,
0xcc, 0x50, 0xe4, 0x9e, 0x4c, 0x5a, 0x32, 0xb5,
0x97, 0xfa, 0x37, 0xaf, 0x59, 0x6f, 0xd7, 0x63
0x88, 0x06, 0xfd, 0x5d, 0x6f, 0x45, 0xd0, 0x0e,
0xea, 0x66, 0xc9, 0xdc, 0xda, 0x38, 0xd4, 0xa8,
0x06, 0x81, 0xd9, 0x31, 0x9b, 0x22, 0x2d, 0xef,
0x4e, 0x69, 0x00, 0xc4, 0x8c, 0xdf, 0x4e, 0x44
};
size_t public_b_len = 32;
unsigned char public_b[32] = {
0xfb, 0xbb, 0xaf, 0x50, 0x62, 0x94, 0xb0, 0x6d,
0x66, 0xd8, 0x3d, 0x2f, 0xf2, 0x9f, 0xad, 0xe2,
0xe4, 0x15, 0xfe, 0x72, 0x33, 0xee, 0x36, 0xca,
0xa1, 0xc9, 0x15, 0x76, 0x20, 0x10, 0x7d, 0x71
0xdc, 0xc2, 0xcf, 0xe2, 0xc9, 0x3e, 0xe0, 0xf7,
0x33, 0x6f, 0xb8, 0xab, 0xe4, 0xb4, 0xe1, 0x6d,
0x82, 0xcb, 0xcc, 0xfa, 0x83, 0xc4, 0x8d, 0x09,
0x6f, 0x24, 0xec, 0xe0, 0xf3, 0x93, 0xce, 0x73
};
size_t message_len = 12;
@@ -38,16 +38,16 @@ unsigned char message[12] = {
size_t nonce_len = 24;
unsigned char nonce[24] = {
0xbe, 0x81, 0x4b, 0xb0, 0x16, 0xcf, 0x3c, 0x70,
0xf2, 0x28, 0xc9, 0x26, 0xa2, 0x07, 0xa8, 0x29,
0x8d, 0x66, 0xb5, 0x91, 0x4b, 0x66, 0x17, 0xce
0x5e, 0xa0, 0xbd, 0x53, 0x16, 0xbf, 0x91, 0x2d,
0xfc, 0xe7, 0x1c, 0x0d, 0x4c, 0x9f, 0x79, 0xd1,
0x4d, 0x98, 0x3c, 0x2b, 0x1e, 0x47, 0x35, 0x0d
};
size_t cipher_len = 28;
unsigned char cipher[28] = {
0xb2, 0xfd, 0xe8, 0xc3, 0xd0, 0xe1, 0x40, 0x33,
0x28, 0xb4, 0x87, 0x6b, 0x70, 0x56, 0x7a, 0xe8,
0xcf, 0x7d, 0x1d, 0xd6, 0x93, 0x0e, 0x62, 0x0b,
0xe3, 0xb5, 0x8c, 0x13
0xac, 0x06, 0x36, 0x4d, 0xd0, 0xa7, 0x58, 0x4e,
0x18, 0x35, 0x99, 0x29, 0x2b, 0x1e, 0x4a, 0x08,
0x1e, 0xcd, 0xd3, 0xc7, 0xce, 0x4a, 0xd1, 0xa7,
0x3e, 0x78, 0x94, 0xe9
};

View File

@@ -63,7 +63,7 @@ dxmorg@florida.cops.gov
<test check-secret-key-info>
cmd = $pcp -V $vault -l | tail -1 | cut -d ' ' -f 1 | xargs $pcp -V $vault -t -i
expect = /BEGIN PCP SECRET KEY/
expect = /Serial Number/
</test>
<test check-export-public-key>

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PUBLIC KEY-----
22+xo&#]]jo8ntzJdf3QOkX-?]{jsn*T7)bkb!*E<Aem+>?l+0}597ZR.>zH3yC=>rmV%>x
{CE4Mmn!J)2xow-RnXP?P@Og2.+H>REO$:POku50jv&Rb3%wP{7ppH<-*!Fbo^9)000040-
F%k&@x5V1oRSV{g17500AQc?s+sU000Gy00SAaB7GxavqJ]JtFp7q01Y?A1PO^CCwZ#jpha
oRvqYPQ000-F00Aohzddc{zFrW0vqYQvy&r/(yYBCn0uh3+0SAsp.}Awq)aYXJM#kKi<Fd2
2c4i%1r?=N{^<#6[-<kPkGsWAbc09rg2:.fl@9:7=]sN}(oW#Ge@O4H=20]6mktz+BQzx00
f#C>3d{Sp/Dc{g=HF#Iu4UBLkc[(ErCcm9)b=dbaYckZW(&NR(020)%g}mkfkJsr}
------END ED25519-CURVE29915 PUBLIC KEY------
~~~~~BEGIN ED25519-CURVE29915 PUBLIC KEY~~~~~
22+[E*94)L5kvZrVv&2kb@a+ka?%vr7IZ=d{$(<%-=#gX8ADWg*Hk+Am.OW&C&JDg]N*z:O
M:v9Sk$22F$*)4g3fMPo*O$G+1Wf>8TwQm[E)pySYiO(:W7k9Rj=R]njrL3bo^9)000040-
GFA*w?iN1oRS&QfvP$00AQc)4NU-000Gy00SAaB7GxavqI(09ThPA01Y?A1PO^CCwZ#jpha
oRvqYPQ000-F00Aohzddc{zFrW0vqYQvy&r/(yYBCn0uh4nIbbY<J$hS3Vd@.<={RKId!5Q
Q:.jVm=(w?ef]i%]3xH<b&PbUM(K8{bC9Q1ll)OmBJvbDPVvQ7fc0gxCR$anVHbnBXFXHJZ
jh3yx*Rv.dLFUjhk<]<KF/=e6vZ*RJ:OlmQm0kA/?bp^mzPB-uTV8l&S[AOJ8Xb7j
~~~~~END ED25519-CURVE29915 PUBLIC KEY~~~~~

View File

@@ -1,8 +1,8 @@
-----BEGIN ED25519-CURVE29915 PRIVATE KEY-----
EfjJxk8bui3@r=&B8gFizR3)dj5%[r)!dWv<u#no4NCrO[G3}FopZS2Jgh3k{?o<coD=n1H
hLK<YRMiw>sQi?(@98>0gb$OpjX0Fn-Yay2+>e#F[$p]x)/v9B9mF:1T9N>8lM/vf5y/rQ#
=)*(:hVYIMa]ju)xp@()t<&Igi2=@0FTn^u:xplZSr<RVqtMKweGrj$CDTBT$272e*Vgq-l
vR[}Dpp?L1C-Juo5#u$WbJ>^r.Zl}Ebsq.x2@)Ww}5og>8Hs0mW3h4HQU.)6rBM:K)}YL[l
wiO:s+ZUZ(NY-P/9qV.C1TRQc<+vlfg{x<xy&3jCgwSLbckUH9t!biI{fcw%nNnx4e>frMy
Wbw%^5]6jTZ:?b01aHWx:l//5lq&>NCMo}hVzisL]LO^MUW-+$zXF61=a$SR2Ut={
------END ED25519-CURVE29915 PRIVATE KEY------
~~~~~BEGIN ED25519-CURVE29915 PRIVATE KEY~~~~~
4Bs0#CKTjpx5[Xz(V:e9CN(HNl}X%Q+#6u9qDaba=EpllyA!cI)k-(wM<2TB}y7Ze3zUjTG
/GH7NBGFP0d#084T-Nk8cnp&W:(@QUg/]4[ih&QAZ++!QtHC:dW{^tfMz@j&0^BYeHYzL)!
O/YRSn-)06FoVHt$Ef1i%rhMZAI4(%jc-:+FHPXB3qYZ{JIz^rcb+XE%WerZ6st{Uj5$.Zn
q@Yt-2NIM^]3)sc8VkaDWk60mV-{.iEy]7s:b15xt#0lE}ybXRKc8{FLv!bM*pPw^#a.GRe
1uh/pUocpnHaky66.LX?}:&V<F2[W-cAoO<{V1b@jdH4y]f$UDWd54}?XNz-QO6@K?E#(A-
(m!j<i$Hv@45zMCKLrLr(kBml31aFT0)&ot!j%1NBVwzy>xW/.=N[6vnsJJhx*o5<
~~~~~END ED25519-CURVE29915 PRIVATE KEY~~~~~

View File

@@ -1 +0,0 @@
5<><35>b<<04>C<1F>P}<7D><<3C>Y@BՃ<1F><><EFBFBD>e<EFBFBD><65>s<EFBFBD>2<EFBFBD><32> <20>4<1D>Qʔ<51>x-c<>