summaryrefslogtreecommitdiff
path: root/sys/src/cmd/btc
diff options
context:
space:
mode:
authoraiju <aiju@phicode.de>2012-06-08 17:23:29 +0200
committeraiju <aiju@phicode.de>2012-06-08 17:23:29 +0200
commit964b86fcd983ca345bb7f7a0e26c5814ec2e1333 (patch)
treeca4662cfced47cbe9001f04a292f3ca14e5fcfc1 /sys/src/cmd/btc
parenta715d9ec94f0e16ad7379e3ffad231f217ba9422 (diff)
more btc stuff
Diffstat (limited to 'sys/src/cmd/btc')
-rw-r--r--sys/src/cmd/btc/sign.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/sys/src/cmd/btc/sign.c b/sys/src/cmd/btc/sign.c
index 09ff86651..8366c8afe 100644
--- a/sys/src/cmd/btc/sign.c
+++ b/sys/src/cmd/btc/sign.c
@@ -153,6 +153,14 @@ doscript(char **args, int n, uchar *script, int *len, TxIn *ti)
free(b);
continue;
}
+ if(args[i][0] == '['){
+ k = strtol(args[i] + 1, &s, 0);
+ b = mallocz(k, 1);
+ hexdec(s+1, b, k);
+ pushdat(&scr, b, k);
+ free(b);
+ continue;
+ }
sysfatal("invalid word %s", args[i]);
next: ;
}
@@ -183,6 +191,7 @@ serialize(uchar *buf, int sig)
s += ti->sclen;
}
if(sig == i){
+ varenc(ti->scoldlen, &s);
memcpy(s, ti->scold, ti->scoldlen);
s += ti->scoldlen;
}
@@ -211,7 +220,7 @@ serialize(uchar *buf, int sig)
*s++ = 0;
*s++ = 0;
if(sig != -1){
- *s++ = 0;
+ *s++ = 1;
*s++ = 0;
*s++ = 0;
*s++ = 0;
@@ -254,7 +263,7 @@ main()
TxIn *ti;
Sig *si;
uchar hash[32];
- uchar sig[100];
+ uchar sig[100], c;
afd = open("/mnt/factotum/rpc", ORDWR);
if(afd < 0)
@@ -276,6 +285,11 @@ main()
if(tokenize(line, args, nelem(args)) != 2)
sysfatal("line %d: invalid data", linenum);
hexdec(args[0], ti->prev, 32);
+ for(n = 0; n < 16; n++){
+ c = ti->prev[n];
+ ti->prev[n] = ti->prev[31-n];
+ ti->prev[31-n] = c;
+ }
i = atoi(args[1]);
ti->prev[32] = i;
ti->prev[33] = i >> 8;
@@ -314,8 +328,8 @@ main()
sha2_256(hash, 32, hash, nil);
for(si = ti->sig; si != nil; si = si->n){
sign(hash, ti->sig->priv, sig + 1, &n);
- print("%d\n", n);
- sig[0] = n++;
+ sig[0] = ++n;
+ sig[n++] = 1;
memmove(ti->sc + si->loc + n, ti->sc + si->loc, ti->sclen - si->loc);
memmove(ti->sc + si->loc, sig, n);
ti->sclen += n;
@@ -329,7 +343,7 @@ main()
if((i%32)==31)
print("\n");
}
- if((i%16)!=0)
+ if((i%32)!=0)
print("\n");
}