int main(int argc, char **argv) { fail_unless(e3x_init(NULL) == 0); lob_t id = e3x_generate(); fail_unless(id); e3x_self_t self = e3x_self_new(id,NULL); fail_unless(self); int i, count = 0; for(i = 0; i < CS_MAX; i++) { if(!self->locals[i]) continue; LOG("self testing CS %d",i); count++; fail_unless(self->locals[i]); fail_unless(self->keys[i]); fail_unless(self->keys[i]->body_len); fail_unless(lob_get(self->keys[i],"key")); fail_unless(lob_get(self->keys[i],"hash")); fail_unless(strlen(lob_get(self->keys[i],"hash")) == 52); } fail_unless(count); e3x_self_free(self); lob_free(id); return 0; }
// must be called to initialize to a hashname from keys/secrets, return !0 if failed uint8_t mesh_load(mesh_t mesh, lob_t secrets, lob_t keys) { if(!mesh || !secrets || !keys) return 1; if(!(mesh->self = e3x_self_new(secrets, keys))) return 2; mesh->keys = lob_copy(keys); mesh->id = hashname_dup(hashname_vkeys(mesh->keys)); LOG_INFO("mesh is %s",hashname_short(mesh->id)); return 0; }