mirror of
https://github.com/logos-messaging/go-zerokit-rln-arm.git
synced 2026-01-04 06:23:07 +00:00
chore: expose set_tree, key_gen, seeded_key_gen, extended_seeded_keygen, recover_id_secret, set_leaf, init_tree_with_leaves, set_metadata and get_metadata
This commit is contained in:
parent
89b514ad76
commit
c48a56712e
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -39,6 +39,8 @@ bool delete_leaf(struct RLN *ctx, uintptr_t index);
|
|||||||
|
|
||||||
bool set_leaf(struct RLN *ctx, uintptr_t index, const struct Buffer *input_buffer);
|
bool set_leaf(struct RLN *ctx, uintptr_t index, const struct Buffer *input_buffer);
|
||||||
|
|
||||||
|
bool get_leaf(struct RLN *ctx, uintptr_t index, struct Buffer *output_buffer);
|
||||||
|
|
||||||
bool set_next_leaf(struct RLN *ctx, const struct Buffer *input_buffer);
|
bool set_next_leaf(struct RLN *ctx, const struct Buffer *input_buffer);
|
||||||
|
|
||||||
bool set_leaves_from(struct RLN *ctx, uintptr_t index, const struct Buffer *input_buffer);
|
bool set_leaves_from(struct RLN *ctx, uintptr_t index, const struct Buffer *input_buffer);
|
||||||
@ -88,6 +90,10 @@ bool recover_id_secret(const struct RLN *ctx,
|
|||||||
const struct Buffer *input_proof_buffer_2,
|
const struct Buffer *input_proof_buffer_2,
|
||||||
struct Buffer *output_buffer);
|
struct Buffer *output_buffer);
|
||||||
|
|
||||||
|
bool set_metadata(struct RLN *ctx, const struct Buffer *input_buffer);
|
||||||
|
|
||||||
|
bool get_metadata(const struct RLN *ctx, struct Buffer *output_buffer);
|
||||||
|
|
||||||
bool hash(const struct Buffer *input_buffer, struct Buffer *output_buffer);
|
bool hash(const struct Buffer *input_buffer, struct Buffer *output_buffer);
|
||||||
|
|
||||||
bool poseidon_hash(const struct Buffer *input_buffer, struct Buffer *output_buffer);
|
bool poseidon_hash(const struct Buffer *input_buffer, struct Buffer *output_buffer);
|
||||||
|
|||||||
@ -63,6 +63,27 @@ func NewWithFolder(depth int, resourcesFolderPath string) (*RLN, error) {
|
|||||||
return r, nil
|
return r, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RLN) SetTree(treeHeight uint) bool {
|
||||||
|
return bool(C.set_tree(r.ptr, C.uintptr_t(treeHeight)))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RLN) KeyGen() []byte {
|
||||||
|
buffer := toBuffer([]byte{})
|
||||||
|
if !bool(C.key_gen(r.ptr, &buffer)) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return C.GoBytes(unsafe.Pointer(buffer.ptr), C.int(buffer.len))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RLN) SeededKeyGen(seed []byte) []byte {
|
||||||
|
seedBuff := toCBufferPtr(seed)
|
||||||
|
buffer := toBuffer([]byte{})
|
||||||
|
if !bool(C.seeded_key_gen(r.ptr, seedBuff, &buffer)) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return C.GoBytes(unsafe.Pointer(buffer.ptr), C.int(buffer.len))
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RLN) ExtendedKeyGen() []byte {
|
func (r *RLN) ExtendedKeyGen() []byte {
|
||||||
buffer := toBuffer([]byte{})
|
buffer := toBuffer([]byte{})
|
||||||
if !bool(C.extended_key_gen(r.ptr, &buffer)) {
|
if !bool(C.extended_key_gen(r.ptr, &buffer)) {
|
||||||
@ -71,6 +92,29 @@ func (r *RLN) ExtendedKeyGen() []byte {
|
|||||||
return C.GoBytes(unsafe.Pointer(buffer.ptr), C.int(buffer.len))
|
return C.GoBytes(unsafe.Pointer(buffer.ptr), C.int(buffer.len))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RLN) ExtendedSeededKeyGen(seed []byte) []byte {
|
||||||
|
seedBuff := toCBufferPtr(seed)
|
||||||
|
buffer := toBuffer([]byte{})
|
||||||
|
if !bool(C.seeded_extended_key_gen(r.ptr, seedBuff, &buffer)) {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return C.GoBytes(unsafe.Pointer(buffer.ptr), C.int(buffer.len))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RLN) RecoverIDSecret(proof1 []byte, proof2 []byte) ([]byte, error) {
|
||||||
|
proof1Buff := toCBufferPtr(proof1)
|
||||||
|
proof2Buff := toCBufferPtr(proof2)
|
||||||
|
|
||||||
|
var output []byte
|
||||||
|
out := toBuffer(output)
|
||||||
|
|
||||||
|
if !bool(C.recover_id_secret(r.ptr, proof1Buff, proof2Buff, &out)) {
|
||||||
|
return nil, errors.New("failed to hash")
|
||||||
|
}
|
||||||
|
|
||||||
|
return C.GoBytes(unsafe.Pointer(out.ptr), C.int(out.len)), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RLN) Hash(input []byte) ([]byte, error) {
|
func (r *RLN) Hash(input []byte) ([]byte, error) {
|
||||||
inpBuff := toCBufferPtr(input)
|
inpBuff := toCBufferPtr(input)
|
||||||
|
|
||||||
@ -122,6 +166,11 @@ func (r *RLN) VerifyWithRoots(input []byte, roots []byte) (bool, error) {
|
|||||||
return bool(res), nil
|
return bool(res), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RLN) SetLeaf(index uint, idcommitment []byte) bool {
|
||||||
|
buff := toCBufferPtr(idcommitment[:])
|
||||||
|
return bool(C.set_leaf(r.ptr, C.uintptr_t(index), buff))
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RLN) SetNextLeaf(idcommitment []byte) bool {
|
func (r *RLN) SetNextLeaf(idcommitment []byte) bool {
|
||||||
buff := toCBufferPtr(idcommitment[:])
|
buff := toCBufferPtr(idcommitment[:])
|
||||||
return bool(C.set_next_leaf(r.ptr, buff))
|
return bool(C.set_next_leaf(r.ptr, buff))
|
||||||
@ -132,6 +181,27 @@ func (r *RLN) SetLeavesFrom(index uint, idcommitments []byte) bool {
|
|||||||
return bool(C.set_leaves_from(r.ptr, C.uintptr_t(index), idCommBuffer))
|
return bool(C.set_leaves_from(r.ptr, C.uintptr_t(index), idCommBuffer))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *RLN) InitTreeWithLeaves(idcommitments []byte) bool {
|
||||||
|
idCommBuffer := toCBufferPtr(idcommitments)
|
||||||
|
return bool(C.init_tree_with_leaves(r.ptr, idCommBuffer))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RLN) SetMetadata(metadata []byte) bool {
|
||||||
|
metadataBuffer := toCBufferPtr(metadata)
|
||||||
|
return bool(C.set_metadata(r.ptr, metadataBuffer))
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RLN) GetMetadata() ([]byte, error) {
|
||||||
|
var output []byte
|
||||||
|
out := toBuffer(output)
|
||||||
|
|
||||||
|
if !bool(C.get_metadata(r.ptr, &out)) {
|
||||||
|
return nil, errors.New("could not obtain the metadata")
|
||||||
|
}
|
||||||
|
|
||||||
|
return C.GoBytes(unsafe.Pointer(out.ptr), C.int(out.len)), nil
|
||||||
|
}
|
||||||
|
|
||||||
func (r *RLN) AtomicOperation(index uint, leaves []byte, indices []byte) bool {
|
func (r *RLN) AtomicOperation(index uint, leaves []byte, indices []byte) bool {
|
||||||
leavesBuffer := toCBufferPtr(leaves)
|
leavesBuffer := toCBufferPtr(leaves)
|
||||||
indicesBuffer := toCBufferPtr(indices)
|
indicesBuffer := toCBufferPtr(indices)
|
||||||
|
|||||||
2
zerokit
2
zerokit
@ -1 +1 @@
|
|||||||
Subproject commit c2d386cb749f551541bb34c4386a3849485356f9
|
Subproject commit 8a365f0c9e5c4a744f70c5dd4904ce8d8f926c34
|
||||||
Loading…
x
Reference in New Issue
Block a user