Package org.nervos.ckb.crypto.secp256k1
Class ECDSASignature
java.lang.Object
org.nervos.ckb.crypto.secp256k1.ECDSASignature
public class ECDSASignature
extends java.lang.Object
-
Field Summary
-
Constructor Summary
Constructors Constructor Description ECDSASignature(java.math.BigInteger r, java.math.BigInteger s) -
Method Summary
Modifier and Type Method Description booleanisCanonical()ECDSASignaturetoCanonicalised()Will automatically adjust the S component to be less than or equal to half the curve order, if necessary.
-
Field Details
-
Constructor Details
-
ECDSASignature
public ECDSASignature(java.math.BigInteger r, java.math.BigInteger s)
-
-
Method Details
-
isCanonical
public boolean isCanonical()- Returns:
- true if the S component is "low", that means it is below
-
toCanonicalised
Will automatically adjust the S component to be less than or equal to half the curve order, if necessary. This is required because for every signature (r,s) the signature (r, -s (mod N)) is a valid signature of the same message. However, we dislike the ability to modify the bits of a Bitcoin transaction after it's been signed, as that violates various assumed invariants. Thus in future only one of those forms will be considered legal and the other will be banned.- Returns:
- the signature in a canonicalised form.
-