Monero Research Lab

repository·master·Indexed 43 days ago

https://github.com/monero-project/research-lab

A collaborative hub for research activities, vulnerability response coordination, and developer collaboration within the Monero ecosystem. Includes resources such as MiniNero, a Python reimplementation of CryptoNote one-time ring signatures, and the StringCT-java project featuring an Ed25519 JNI native library.

Tokens
1K
Snippets
3
Records
7
Agent score
55%

What's inside Monero Research Lab

  1. Compile the Ed25519 JNI native library

    master

    The StringCT-java project includes a JNI C library for Ed25519 operations. While the code automatically falls back to a pure Java implementation if the native library is missing, you can compile the native library for better performance.

    To compile, navigate to the c directory within the project and use gcc to compile the source files against your JDK headers.

    Note: Replace <OS> with darwin on OSX or linux on Linux, and provide the actual paths to your JDK installation.

    cd <path to RuffCT-java/c directory>
    
    # replace <OS> with darwin on OSX, or with linux on Linux.
    gcc -fPIC -c how_monero_hodl_jni_CryptoOpsUtil.c crypto-ops.c crypto-ops-data.c -I /<path to jdk>/include/<OS>/ -I /<path to jdk>/include
    
    gcc -dynamiclib -o libcryptoopsutil.jnilib how_monero_hodl_jni_CryptoOpsUtil.o crypto-ops.o crypto-ops-data.o -framework JavaVM
  2. Contribute to the Monero Research Lab repository

    master

    Researchers use this repository to store research activities and facilitate collaboration.

    Contribution Workflow: Contributors are encouraged to submit pull requests, but must follow the standard fork-and-pull model:

    1. Work in your own fork of the repository.
    2. Submit a pull request from your fork to the main repository once your work is ready.
  3. MiniNero CLI command reference

    master

    The following commands are available via python mininero.py <command> to demonstrate or test specific cryptographic functions:

    Demonstrations:

    • rs: demonstrates the random_scalar function
    • keys: demonstrates key generation
    • fasthash: demonstrates fast hash
    • hashscalar: demonstrates the H_s(P) equivalent function
    • hashcurve: demonstrates H_p(P)
    • checkkey: demonstrates the check_key function
    • secpub: demonstrates turning a fixed secret to a public key
    • keyder: demonstrates Key Derivation
    • dersca: demonstrates derivation to scalar
    • derpub: demonstrates deriving a public key
    • dersec: demonstrates deriving a secret key

    Tests:

    • testcomm: tests the helper struct for some CN functions
    • gensig: tests generate_signature
    • checksig: tests checking a signature
    • keyimage: tests creating I=xH_p(P)
    • ringsig: tests creating and checking a ringsig
    • conv: tests helper conversion functions
    • red: tests some of the sc_Code
    • gedb: tests some of the edwards curve functions
    • sck: tests sc_check