DCMTK Version 3.6.9 OFFIS DICOM Toolkit

Loading...
Searching...
No Matches
Public Member Functions | Private Member Functions | Private Attributes | List of all members
SiPKEY Class Reference

This class implements all supported public key crypto algorithms using the OpenSSL EVP_PKEY high level API. More...

Inheritance diagram for SiPKEY:

## Public Member Functions
| SiPKEY (EVP_PKEY *key, OFBool owned)
| constructor
virtual | ~SiPKEY ()
| destructor
virtual OFCondition | sign (const unsigned char *inputHash, unsigned long inputHashSize, E_MACType inputHashAlgorithm, unsigned char *outputSignature, unsigned long &outputSignatureSize)
| creates a signature.
virtual OFCondition | verify (const unsigned char *inputHash, unsigned long inputHashSize, E_MACType inputHashAlgorithm, const unsigned char *inputSignature, unsigned long inputSignatureSize, OFBool &verified)
| verifies a signature.
virtual unsigned long | getSize () const
| returns the size of a block of encrypted/decrypted ciphertext in bytes.
virtual E_KeyType | keyType () const
| returns the type of public key algorithm computed by this object
Public Member Functions inherited from SiAlgorithm
| SiAlgorithm ()
| default constructor
virtual | ~SiAlgorithm ()
| destructor

## Private Member Functions
| SiPKEY (SiPKEY &arg)
| private undefined copy constructor
SiPKEY & | operator= (SiPKEY &arg)
| private undefined copy assignment operator

## Private Attributes
EVP_PKEY * | signing_key
| key used for signature/verification
OFBool | owned_
| indicates if the signing key object is owned by this instance.

## Detailed Description

This class implements all supported public key crypto algorithms using the OpenSSL EVP_PKEY high level API.

Remarks
  this class is only available if DCMTK is compiled with OpenSSL support enabled.

## Constructor & Destructor Documentation

## ◆ SiPKEY()

SiPKEY::SiPKEY | ( | EVP_PKEY * | key,
|  | OFBool | owned )

constructor

Parameters

  key | pointer to public or private key
  owned | if true, ownership of the key is transferred to the SiPKEY instance

Referenced by SiPKEY(), and operator=().

## Member Function Documentation

## ◆ getSize()

virtual unsigned long SiPKEY::getSize | ( |  | ) | const
| virtual

returns the size of a block of encrypted/decrypted ciphertext in bytes.

The result depends on the public key algorithm, key size and padding scheme. In general the input to decrypt() or encrypt() must be less than or equal to this block size. The output of decrypt() or encrypt() is always equal to this block size.

Returns
  block size for this public key cryptosystem and key

Implements SiAlgorithm.

## ◆ keyType()

virtual E_KeyType SiPKEY::keyType | ( |  | ) | const
| virtual

returns the type of public key algorithm computed by this object

Returns
  type of public key algorithm

Implements SiAlgorithm.

## ◆ sign()

virtual OFCondition SiPKEY::sign | ( | const unsigned char * | inputHash,
|  | unsigned long | inputHashSize,
|  | E_MACType | inputHashAlgorithm,
|  | unsigned char * | outputSignature,
|  | unsigned long & | outputSignatureSize )
| virtual

creates a signature.

Parameters

  inputHash | array of hash key bytes that are to be signed
  inputHashSize | length of hash key array in bytes
  inputHashAlgorithm | MAC algorithm used for creation of hash key. Required for creation of PKCS#1 RSA signature padding.
  outputSignature | pointer to array of at least getSize() which must be allocated by caller.
  outputSignatureSize | returns the number of bytes written to outputSignature.

Returns
  SI_EC_Normal if successful, errorcode otherwise.

Implements SiAlgorithm.

## ◆ verify()

virtual OFCondition SiPKEY::verify | ( | const unsigned char * | inputHash,
|  | unsigned long | inputHashSize,
|  | E_MACType | inputHashAlgorithm,
|  | const unsigned char * | inputSignature,
|  | unsigned long | inputSignatureSize,
|  | OFBool & | verified )
| virtual

verifies a signature.

Parameters

  inputHash | array of bytes containing hash key to be verified against signature
  inputHashSize | length of hash key array in bytes
  inputHashAlgorithm | MAC algorithm used for creation of hash key. Required for creation of PKCS#1 RSA signature padding.
  inputSignature | array of bytes containing signature to be verified
  inputSignatureSize | length of signature array in bytes
  verified | returns whether the signature was successfully verified

Returns
  SI_EC_Normal if successful, errorcode otherwise.

Implements SiAlgorithm.

The documentation for this class was generated from the following file:

- dcmsign/include/dcmtk/dcmsign/sipkey.h

Generated on Sat Mar 1 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2