ECDSA_sign_p1363 function

  1. @RecordUse.new()
  2. @Native<Int Function(Pointer<Uint8>, Size, Pointer<Uint8>, Pointer<Size>, Size, Pointer<EC_KEY>)>(ffi.Pointer<ffi.Uint8>, ffi.Size, ffi.Pointer<ffi.Uint8>, ffi.Pointer<ffi.Size>, ffi.Size, ffi.Pointer<EC_KEY>)>(symbol: 'bssl_dart_ECDSA_sign_p1363')
int ECDSA_sign_p1363(
  1. Pointer<Uint8> digest,
  2. int digest_len,
  3. Pointer<Uint8> sig,
  4. Pointer<Size> out_sig_len,
  5. int max_sig_len,
  6. Pointer<EC_KEY> key,
)

ECDSA_sign_p1363 signs digest_len bytes from digest with key and writes the resulting P1363-based signature to sig, which must have ECDSA_size_p1363(key) bytes of space. On successful exit, *out_sig_len is set to the actual number of bytes written, which will always match ECDSA_size_p1363(key). It returns one on success and zero otherwise.

WARNING: digest must be the output of some hash function on the data to be signed. Passing unhashed inputs will not result in a secure signature scheme.

Implementation

@meta.RecordUse()
@ffi.Native<
  ffi.Int Function(
    ffi.Pointer<ffi.Uint8>,
    ffi.Size,
    ffi.Pointer<ffi.Uint8>,
    ffi.Pointer<ffi.Size>,
    ffi.Size,
    ffi.Pointer<EC_KEY>,
  )
>(symbol: 'bssl_dart_ECDSA_sign_p1363')
external int ECDSA_sign_p1363(
  ffi.Pointer<ffi.Uint8> digest,
  int digest_len,
  ffi.Pointer<ffi.Uint8> sig,
  ffi.Pointer<ffi.Size> out_sig_len,
  int max_sig_len,
  ffi.Pointer<EC_KEY> key,
);