* Use Jonas Nick's musig2 branch * Reformat c code (no functional changes) * Implement musig2 * Add documentation to musig2 functions (#97) Usage of the Musig2 functions isn't intuitive at all, especially with the key aggregation cache and session data. It's important to provide accurate documentation to help users understand how to correctly produce musig2 signatures. We also change argument names to match Kotlin best practices instead of using the same argument names as C functions. * Add musig2 reference tests (no functional changes) --------- Co-authored-by: Bastien Teinturier <31281497+t-bast@users.noreply.github.com>
274 lines
10 KiB
C
274 lines
10 KiB
C
/* DO NOT EDIT THIS FILE - it is machine generated */
|
|
#include <jni.h>
|
|
/* Header for class fr_acinq_secp256k1_Secp256k1CFunctions */
|
|
|
|
#ifndef _Included_fr_acinq_secp256k1_Secp256k1CFunctions
|
|
#define _Included_fr_acinq_secp256k1_Secp256k1CFunctions
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_TYPE_CONTEXT
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_TYPE_CONTEXT 1L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_TYPE_COMPRESSION
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_TYPE_COMPRESSION 2L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_CONTEXT_VERIFY
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_CONTEXT_VERIFY 256L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_CONTEXT_SIGN
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_CONTEXT_SIGN 512L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_COMPRESSION
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_FLAGS_BIT_COMPRESSION 256L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_VERIFY
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_VERIFY 257L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_SIGN
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_SIGN 513L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_NONE
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_CONTEXT_NONE 1L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_EC_COMPRESSED
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_EC_COMPRESSED 258L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_EC_UNCOMPRESSED
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_EC_UNCOMPRESSED 2L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_PUBLIC_NONCE_SIZE
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_PUBLIC_NONCE_SIZE 66L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_SECRET_NONCE_SIZE
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_SECRET_NONCE_SIZE 132L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_KEYAGG_CACHE_SIZE
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_KEYAGG_CACHE_SIZE 197L
|
|
#undef fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_SESSION_SIZE
|
|
#define fr_acinq_secp256k1_Secp256k1CFunctions_SECP256K1_MUSIG_SESSION_SIZE 133L
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_context_create
|
|
* Signature: (I)J
|
|
*/
|
|
JNIEXPORT jlong JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1context_1create
|
|
(JNIEnv *, jclass, jint);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_context_destroy
|
|
* Signature: (J)V
|
|
*/
|
|
JNIEXPORT void JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1context_1destroy
|
|
(JNIEnv *, jclass, jlong);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_seckey_verify
|
|
* Signature: (J[B)I
|
|
*/
|
|
JNIEXPORT jint JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1seckey_1verify
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_parse
|
|
* Signature: (J[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1parse
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_create
|
|
* Signature: (J[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1create
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ecdsa_sign
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ecdsa_1sign
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ecdsa_verify
|
|
* Signature: (J[B[B[B)I
|
|
*/
|
|
JNIEXPORT jint JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ecdsa_1verify
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ecdsa_signature_normalize
|
|
* Signature: (J[B[B)I
|
|
*/
|
|
JNIEXPORT jint JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ecdsa_1signature_1normalize
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_privkey_negate
|
|
* Signature: (J[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1privkey_1negate
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_negate
|
|
* Signature: (J[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1negate
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_privkey_tweak_add
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1privkey_1tweak_1add
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_tweak_add
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1tweak_1add
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_privkey_tweak_mul
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1privkey_1tweak_1mul
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_tweak_mul
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1tweak_1mul
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ec_pubkey_combine
|
|
* Signature: (J[[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ec_1pubkey_1combine
|
|
(JNIEnv *, jclass, jlong, jobjectArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ecdh
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ecdh
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_ecdsa_recover
|
|
* Signature: (J[B[BI)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1ecdsa_1recover
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jint);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_compact_to_der
|
|
* Signature: (J[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1compact_1to_1der
|
|
(JNIEnv *, jclass, jlong, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_schnorrsig_sign
|
|
* Signature: (J[B[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1schnorrsig_1sign
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_schnorrsig_verify
|
|
* Signature: (J[B[B[B)I
|
|
*/
|
|
JNIEXPORT jint JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1schnorrsig_1verify
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_nonce_gen
|
|
* Signature: (J[B[B[B[B[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1nonce_1gen
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_nonce_agg
|
|
* Signature: (J[[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1nonce_1agg
|
|
(JNIEnv *, jclass, jlong, jobjectArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_pubkey_agg
|
|
* Signature: (J[[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1pubkey_1agg
|
|
(JNIEnv *, jclass, jlong, jobjectArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_pubkey_ec_tweak_add
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1pubkey_1ec_1tweak_1add
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_pubkey_xonly_tweak_add
|
|
* Signature: (J[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1pubkey_1xonly_1tweak_1add
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_nonce_process
|
|
* Signature: (J[B[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1nonce_1process
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_partial_sign
|
|
* Signature: (J[B[B[B[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1partial_1sign
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_partial_sig_verify
|
|
* Signature: (J[B[B[B[B[B)I
|
|
*/
|
|
JNIEXPORT jint JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1partial_1sig_1verify
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jbyteArray, jbyteArray, jbyteArray, jbyteArray);
|
|
|
|
/*
|
|
* Class: fr_acinq_secp256k1_Secp256k1CFunctions
|
|
* Method: secp256k1_musig_partial_sig_agg
|
|
* Signature: (J[B[[B)[B
|
|
*/
|
|
JNIEXPORT jbyteArray JNICALL Java_fr_acinq_secp256k1_Secp256k1CFunctions_secp256k1_1musig_1partial_1sig_1agg
|
|
(JNIEnv *, jclass, jlong, jbyteArray, jobjectArray);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#endif
|