mirror of
https://github.com/logos-messaging/go-zerokit-rln-arm.git
synced 2026-01-02 13:33:12 +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 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_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,
|
||||
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 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
|
||||
}
|
||||
|
||||
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 {
|
||||
buffer := toBuffer([]byte{})
|
||||
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))
|
||||
}
|
||||
|
||||
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) {
|
||||
inpBuff := toCBufferPtr(input)
|
||||
|
||||
@ -122,6 +166,11 @@ func (r *RLN) VerifyWithRoots(input []byte, roots []byte) (bool, error) {
|
||||
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 {
|
||||
buff := toCBufferPtr(idcommitment[:])
|
||||
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))
|
||||
}
|
||||
|
||||
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 {
|
||||
leavesBuffer := toCBufferPtr(leaves)
|
||||
indicesBuffer := toCBufferPtr(indices)
|
||||
|
||||
2
zerokit
2
zerokit
@ -1 +1 @@
|
||||
Subproject commit c2d386cb749f551541bb34c4386a3849485356f9
|
||||
Subproject commit 8a365f0c9e5c4a744f70c5dd4904ce8d8f926c34
|
||||
Loading…
x
Reference in New Issue
Block a user