Files

31 lines
1.7 KiB
Markdown

# Elliptic Curve Signature Sign
Generates a digital signature using an EC private key.
Source library: `cryptography`
## Overview
This node signs a message using an ECDSA private key. ECDSA (Elliptic Curve Digital Signature Algorithm) is a widely used standard for digital signatures. The resulting signature can be verified by anyone holding the corresponding public key.
## Parameters
- **private_key**: The EC private key object (`KEYOBJ`), obtained from another node.
- **data**: The message to sign, as a `BYTESLIKE` object.
- **signature_algorithm**: The hash algorithm to use for signing. Options include:
- **SHA224**, **SHA256**, **SHA384**, **SHA512**, **SHA512_224**, **SHA512_256**
- **BLAKE2b**, **BLAKE2s**
- **SHA3_224**, **SHA3_256**, **SHA3_384**, **SHA3_512**
- **SHA1**, **MD5**, **SM3**
- **prehashed**: (Optional) A `BOOLEAN` that, when `True`, indicates the data has already been hashed. Use this when the input is a pre-computed hash rather than raw data.
## Outputs
- **signature**: The generated signature as a `BYTESLIKE` object.
## Security Considerations
- [**MD5**](https://en.wikipedia.org/wiki/MD5#Overview_of_security_issues) and [**SHA1**](https://www.nist.gov/news-events/news/2022/12/nist-retires-sha-1-cryptographic-algorithm) are broken and should not be used for new signings that requires security.
- ECDSA signatures are probabilistic — the same key and message produce different signatures each time due to a random nonce. This randomness is essential for security; a deterministic nonce (as in RFC 6979) is not used here, but can be provided later on.
- Ensure the private key is kept secure. A leaked private key allows anyone to forge signatures.