EVP_DigestSignFinal function

  1. @RecordUse.new()
  2. @Native<Int Function(Pointer<EVP_MD_CTX>, Pointer<Uint8>, Pointer<Size>)>(ffi.Pointer<EVP_MD_CTX>, ffi.Pointer<ffi.Uint8>, ffi.Pointer<ffi.Size>)>(symbol: 'bssl_dart_EVP_DigestSignFinal')
int EVP_DigestSignFinal(
  1. Pointer<EVP_MD_CTX> ctx,
  2. Pointer<Uint8> out_sig,
  3. Pointer<Size> out_sig_len
)

EVP_DigestSignFinal signs the data that has been included by one or more calls to |EVP_DigestSignUpdate|. If |out_sig| is NULL then |*out_sig_len| is set to the maximum number of output bytes. Otherwise, on entry, |*out_sig_len| must contain the length of the |out_sig| buffer. If the call is successful, the signature is written to |out_sig| and |*out_sig_len| is set to its length.

This function performs a streaming signing operation and will fail for signature algorithms which do not support this. Use |EVP_DigestSign| for a single-shot operation.

It returns one on success, or zero on error.

Implementation

@meta.RecordUse()
@ffi.Native<
  ffi.Int Function(
    ffi.Pointer<EVP_MD_CTX>,
    ffi.Pointer<ffi.Uint8>,
    ffi.Pointer<ffi.Size>,
  )
>(symbol: 'bssl_dart_EVP_DigestSignFinal')
external int EVP_DigestSignFinal(
  ffi.Pointer<EVP_MD_CTX> ctx,
  ffi.Pointer<ffi.Uint8> out_sig,
  ffi.Pointer<ffi.Size> out_sig_len,
);