I implemented BIP327 independently in btclib-ecc (Python), and these are the cases my tests reach and the vectors do not. reference.py computes every new value, every new case is appended so no existing index changes, and btclib-ecc reproduces every case of the five changed files, with the same error messages.
- det_sign: plain and x-only tweaks with a 38-byte message.
- sign_verify: a 100-byte message; a single signer; a secnonce whose second half is zero; a secnonce generated for another signer's public key; fewer pubnonces than pubkeys at verification.
- sig_agg: a single signer. gen_vectors_helper.py gains the case, so it still generates the file.
- nonce_gen: an extra_in shorter than 32 bytes.
- tweak: a 31-byte tweak; fewer is_xonly flags than tweaks.
One case I left out: a secnonce whose second half is 1. reference.py accepts it, so it is not an error case, and every valid sign_verify case signs with secnonces[0]. Adding it would need a change to reference.py, such as a secnonce index in the valid cases. Would you want that?
The changelog gets version 1.0.5.
Assisted-by: my usual tools (LLM, Internet, computer). Mistakes are mine.