aboutsummaryrefslogtreecommitdiff
path: root/extension/background
diff options
context:
space:
mode:
authorFlorian Dold <florian.dold@gmail.com>2015-12-14 05:36:06 +0100
committerFlorian Dold <florian.dold@gmail.com>2015-12-14 05:36:06 +0100
commit9da386ed63a3fcc8b9b3b9d189e4f7168c46a579 (patch)
treef5727636cd0eef010e6683be07e631011ec56542 /extension/background
parent441f41deccac779889ee19f3803e33936da43eb3 (diff)
downloadwallet-core-9da386ed63a3fcc8b9b3b9d189e4f7168c46a579.tar.xz
Skeletons for wrappers.
Diffstat (limited to 'extension/background')
-rw-r--r--extension/background/emscriptif.js23
-rw-r--r--extension/background/emscriptif.ts33
2 files changed, 37 insertions, 19 deletions
diff --git a/extension/background/emscriptif.js b/extension/background/emscriptif.js
index 7188012f3..b72d22bf8 100644
--- a/extension/background/emscriptif.js
+++ b/extension/background/emscriptif.js
@@ -32,6 +32,7 @@ var emscAlloc = {
get_amount: getEmsc('TALER_WRALL_get_amount', 'number', ['number', 'number', 'number', 'string']),
eddsa_key_create: getEmsc('GNUNET_CRYPTO_eddsa_key_create', 'number'),
eddsa_public_key_from_private: getEmsc('TALER_WRALL_eddsa_public_key_from_private', 'number', ['number']),
+ data_to_string_alloc: getEmsc('GNUNET_STRINGS_data_to_string_alloc', 'number', ['number', 'number']),
malloc: (size) => Module._malloc(size),
};
class ArenaObject {
@@ -119,12 +120,23 @@ class Amount extends ArenaObject {
emsc.amount_normalize(this.nativePtr);
}
}
-class EddsaPrivateKey extends ArenaObject {
+class SizedArenaObject extends ArenaObject {
+ encode() {
+ var d = emscAlloc.data_to_string_alloc(this.nativePtr, this.size);
+ var s = Module.Pointer_stringify(d);
+ emsc.free(d);
+ return s;
+ }
+}
+class EddsaPrivateKey extends SizedArenaObject {
static create(a) {
let k = new EddsaPrivateKey(a);
k.nativePtr = emscAlloc.eddsa_key_create();
return k;
}
+ get size() {
+ return 32;
+ }
destroy() {
// TODO
}
@@ -133,16 +145,13 @@ class EddsaPrivateKey extends ArenaObject {
pk.nativePtr = emscAlloc.eddsa_public_key_from_private(this.nativePtr);
return pk;
}
- encode() {
- throw "not implemented";
- }
}
-class EddsaPublicKey extends ArenaObject {
+class EddsaPublicKey extends SizedArenaObject {
destroy() {
// TODO
}
- encode() {
- throw "not implemented";
+ get size() {
+ return 32;
}
}
class RsaBlindingKey extends ArenaObject {
diff --git a/extension/background/emscriptif.ts b/extension/background/emscriptif.ts
index 1b339c0c0..b99b471f1 100644
--- a/extension/background/emscriptif.ts
+++ b/extension/background/emscriptif.ts
@@ -58,6 +58,9 @@ var emscAlloc = {
eddsa_public_key_from_private: getEmsc('TALER_WRALL_eddsa_public_key_from_private',
'number',
['number']),
+ data_to_string_alloc: getEmsc('GNUNET_STRINGS_data_to_string_alloc',
+ 'number',
+ ['number', 'number']),
malloc: (size : number) => Module._malloc(size),
};
@@ -168,36 +171,42 @@ class Amount extends ArenaObject {
}
-class EddsaPrivateKey extends ArenaObject {
+abstract class PackedArenaObject extends ArenaObject {
+ size: number;
+
+ encode(): string {
+ var d = emscAlloc.data_to_string_alloc(this.nativePtr, this.size);
+ var s = Module.Pointer_stringify(d);
+ emsc.free(d);
+ return s;
+ }
+}
+
+
+class EddsaPrivateKey extends PackedArenaObject {
static create(a?: Arena): EddsaPrivateKey {
let k = new EddsaPrivateKey(a);
k.nativePtr = emscAlloc.eddsa_key_create();
return k;
}
- destroy() {
- // TODO
- }
+ get size() { return 32; }
getPublicKey(): EddsaPublicKey {
let pk = new EddsaPublicKey(this.arena);
pk.nativePtr = emscAlloc.eddsa_public_key_from_private(this.nativePtr);
return pk;
}
-
- encode(): string {
- throw "not implemented";
- }
}
-class EddsaPublicKey extends ArenaObject {
+class EddsaPublicKey extends PackedArenaObject {
destroy() {
// TODO
}
- encode(): string {
- throw "not implemented";
+ get size() {
+ return 32;
}
}
@@ -216,7 +225,7 @@ class HashCode extends ArenaObject {
}
-class ByteArray extends ArenaObject {
+class ByteArray extends PackedArenaObject {
destroy() {
// TODO
}