secp256k1 extmod: raise ValueError or RuntimeError as appropriate
This commit is contained in:
parent
748f9131f9
commit
6f5484d82c
2 changed files with 15 additions and 15 deletions
|
|
@ -243,7 +243,7 @@ static PyObject * sign_msghash(PyObject *Py_UNUSED(self), PyObject *args) {
|
|||
}
|
||||
|
||||
if (msghash_bytes_len != 32) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid message hash length (not 32 bytes)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid message hash length (not 32 bytes)");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -257,11 +257,11 @@ static PyObject * sign_msghash(PyObject *Py_UNUSED(self), PyObject *args) {
|
|||
int recid;
|
||||
|
||||
if (!secp256k1_ecdsa_sign_recoverable(ctx, &rsig, msghash_bytes, privkey_bytes, NULL, NULL)) {
|
||||
PyErr_SetString(PyExc_ValueError, "Unable to sign message hash");
|
||||
PyErr_SetString(PyExc_RuntimeError, "Unable to sign message hash");
|
||||
return NULL;
|
||||
}
|
||||
if (!secp256k1_ecdsa_recoverable_signature_serialize_compact(ctx, rsig_serialized, &recid, &rsig)) {
|
||||
PyErr_SetString(PyExc_ValueError, "Unable to serialize signature");
|
||||
PyErr_SetString(PyExc_RuntimeError, "Unable to serialize signature");
|
||||
return NULL;
|
||||
}
|
||||
/* truncate serialized sig to 64 bytes */
|
||||
|
|
@ -291,11 +291,11 @@ static PyObject * verify_sig(PyObject *Py_UNUSED(self), PyObject *args) {
|
|||
}
|
||||
|
||||
if (sig_bytes_len != 64) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid signature length (not 64 bytes)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid signature length (not 64 bytes)");
|
||||
return NULL;
|
||||
}
|
||||
if (msghash_bytes_len != 32) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid message hash length (not 32 bytes)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid message hash length (not 32 bytes)");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -341,15 +341,15 @@ static PyObject * pubkey_recover(PyObject *Py_UNUSED(self), PyObject *args) {
|
|||
}
|
||||
|
||||
if (recid < 0 || recid > 3) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid recovery ID (not in range 0-3)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid recovery ID (not in range 0-3)");
|
||||
return NULL;
|
||||
}
|
||||
if (sig_bytes_len != 64) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid signature length (not 64 bytes)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid signature length (not 64 bytes)");
|
||||
return NULL;
|
||||
}
|
||||
if (msghash_bytes_len != 32) {
|
||||
PyErr_SetString(PyExc_RuntimeError, "Invalid message hash length (not 32 bytes)");
|
||||
PyErr_SetString(PyExc_ValueError, "Invalid message hash length (not 32 bytes)");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -81,19 +81,19 @@ class unit_tests:
|
|||
|
||||
bad_data = (
|
||||
('sign: bad args', 'ValueError', 'Unable to parse', sign1),
|
||||
('sign: bad msghash len', 'RuntimeError', 'hash length', sign2),
|
||||
('sign: bad msghash len', 'ValueError', 'hash length', sign2),
|
||||
('sign: privkey=0', 'ValueError', 'Private key not in allowable', sign3),
|
||||
('verify: bad args', 'ValueError', 'Unable to parse', verify1),
|
||||
('verify: bad pubkey', 'RuntimeError', 'Failed to parse', verify2),
|
||||
('verify: bad sig', 'AssertionError', 'bad signature', verify3),
|
||||
('verify: good sig', 'AssertionError', 'good signature', verify4),
|
||||
('verify: bad msghash len', 'RuntimeError', 'message hash length', verify5),
|
||||
('verify: bad sig len', 'RuntimeError', 'Invalid signature length', verify6),
|
||||
('verify: bad msghash len', 'ValueError', 'message hash length', verify5),
|
||||
('verify: bad sig len', 'ValueError', 'Invalid signature length', verify6),
|
||||
('recover: bad args', 'ValueError', 'Unable to parse', recov1),
|
||||
('recover: bad recid', 'RuntimeError', 'Invalid recovery ID', recov2),
|
||||
('recover: bad recid', 'RuntimeError', 'Invalid recovery ID', recov3),
|
||||
('recover: bad sig len', 'RuntimeError', 'Invalid signature length', recov4),
|
||||
('recover: bad msghash len', 'RuntimeError', 'message hash length', recov5),
|
||||
('recover: bad recid', 'ValueError', 'Invalid recovery ID', recov2),
|
||||
('recover: bad recid', 'ValueError', 'Invalid recovery ID', recov3),
|
||||
('recover: bad sig len', 'ValueError', 'Invalid signature length', recov4),
|
||||
('recover: bad msghash len', 'ValueError', 'message hash length', recov5),
|
||||
('recover: bad pubkey', 'AssertionError', 'bad pubkey', recov6),
|
||||
('recover: bad pubkey', 'AssertionError', 'good pubkey', recov7),
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue