gSOAP WS-Security 2.8 Stable
|
#include "stdsoap2.h"
Classes | |
struct | soap_smd_data |
The smdevp engine context data, which is hooked up to soap->data[0]. More... | |
Defines | |
#define | SOAP_SMD_KEY_TYPE EVP_PKEY |
#define | SOAP_SMD_MAX_SIZE EVP_MAX_MD_SIZE |
#define | SOAP_SMD_MD5_SIZE (16) |
#define | SOAP_SMD_SHA1_SIZE (20) |
#define | SOAP_SMD_NONE (0) |
#define | SOAP_SMD_DGST_MD5 (0x1) |
#define | SOAP_SMD_DGST_SHA1 (0x2) |
#define | SOAP_SMD_HMAC_SHA1 (0x3) |
#define | SOAP_SMD_SIGN_DSA_SHA1 (0x4) |
#define | SOAP_SMD_SIGN_RSA_SHA1 (0x5) |
#define | SOAP_SMD_VRFY_DSA_SHA1 (0x6) |
#define | SOAP_SMD_VRFY_RSA_SHA1 (0x7) |
#define | SOAP_SMD_PASSTHRU (0x8) |
Functions | |
size_t | soap_smd_size (int alg, const void *key) |
Returns the number of octets needed to store the digest or signature returned by soap_smd_end. | |
int | soap_smd_begin (struct soap *soap, int alg, const void *key, int keylen) |
Initiates a digest or signature computation. | |
int | soap_smd_end (struct soap *soap, char *buf, int *len) |
Completes a digest or signature computation. Also deallocates temporary storage allocated by soap_smd_begin(), so MUST be called after soap_smd_begin(). | |
int | soap_smd_init (struct soap *soap, struct soap_smd_data *data, int alg, const void *key, int keylen) |
Initiates a (signed) digest computation. | |
int | soap_smd_update (struct soap *soap, struct soap_smd_data *data, const char *buf, size_t len) |
Updates (signed) digest computation with message part. | |
int | soap_smd_final (struct soap *soap, struct soap_smd_data *data, char *buf, int *len) |
Finalizes (signed) digest computation and returns digest or signature. |
#define SOAP_SMD_DGST_MD5 (0x1) |
MD5 digest algorithm
#define SOAP_SMD_DGST_SHA1 (0x2) |
SHA1 digest algorithm
#define SOAP_SMD_HMAC_SHA1 (0x3) |
HMAC-SHA1 shared key signature algorithm
#define SOAP_SMD_KEY_TYPE EVP_PKEY |
Expose EVP_PKEY in a portable representation
#define SOAP_SMD_MAX_SIZE EVP_MAX_MD_SIZE |
Expose EVP_MAX_MD_SIZE in a portable representation
#define SOAP_SMD_MD5_SIZE (16) |
MD5 digest size in octets
#define SOAP_SMD_NONE (0) |
#define SOAP_SMD_PASSTHRU (0x8) |
Additional flag: msg sends will pass through digest/signature algorithm
#define SOAP_SMD_SHA1_SIZE (20) |
SHA1 digest size in octets
#define SOAP_SMD_SIGN_DSA_SHA1 (0x4) |
DSA-SHA1 secret key signature algorithm
#define SOAP_SMD_SIGN_RSA_SHA1 (0x5) |
RSA-SHA1 secret key signature algorithm
#define SOAP_SMD_VRFY_DSA_SHA1 (0x6) |
DSA-SHA1 secret key signature verification algorithm
#define SOAP_SMD_VRFY_RSA_SHA1 (0x7) |
RSA-SHA1 secret key signature verification algorithm
int soap_smd_begin | ( | struct soap * | soap, |
int | alg, | ||
const void * | key, | ||
int | keylen | ||
) |
Initiates a digest or signature computation.
soap | context | |
[in] | alg | is the digest or signature (sign/verification) algorithm used |
[in] | key | is a HMAC key or pointer to EVP_PKEY object or NULL for digests |
[in] | keylen | is the length of the HMAC key or 0 |
int soap_smd_end | ( | struct soap * | soap, |
char * | buf, | ||
int * | len | ||
) |
Completes a digest or signature computation. Also deallocates temporary storage allocated by soap_smd_begin(), so MUST be called after soap_smd_begin().
soap | context | |
[in] | buf | contains signature for verification (when using a SOAP_SMD_VRFY algorithm) or NULL for cleanup |
[out] | buf | is populated with the digest or signature with maximum length soap_smd_size(alg, key) |
[in] | len | points to length of signature to verify (when using a SOAP_SMD_VRFY algorithm) or NULL for cleanup |
[out] | len | points to length of stored digest or signature (when not NULL) |
int soap_smd_final | ( | struct soap * | soap, |
struct soap_smd_data * | data, | ||
char * | buf, | ||
int * | len | ||
) |
Finalizes (signed) digest computation and returns digest or signature.
soap | context | |
[in,out] | data | smdevp engine context |
[in] | buf | contains signature for verification (SOAP_SMD_VRFY algorithms) |
[out] | buf | is populated with the digest or signature |
[in] | len | points to length of signature to verify (SOAP_SMD_VRFY algorithms) |
[out] | len | points to length of stored digest or signature (pass NULL if you are not interested in this value) |
int soap_smd_init | ( | struct soap * | soap, |
struct soap_smd_data * | data, | ||
int | alg, | ||
const void * | key, | ||
int | keylen | ||
) |
Initiates a (signed) digest computation.
soap | context | |
[in,out] | data | smdevp engine context |
[in] | alg | is algorithm to use |
[in] | key | is key to use or NULL for digests |
[in] | keylen | is length of HMAC key (when provided) |
size_t soap_smd_size | ( | int | alg, |
const void * | key | ||
) |
Returns the number of octets needed to store the digest or signature returned by soap_smd_end.
[in] | alg | is the digest or signature algorithm to be used |
[in] | key | is a pointer to an EVP_PKEY object for RSA/DSA signatures or NULL for digests and HMAC |
The values returned for digests are SOAP_SMD_MD5_SIZE and SOAP_SMD_SHA1_SIZE.
int soap_smd_update | ( | struct soap * | soap, |
struct soap_smd_data * | data, | ||
const char * | buf, | ||
size_t | len | ||
) |
Updates (signed) digest computation with message part.
soap | context | |
[in,out] | data | smdevp engine context |
[in] | buf | contains message part |
[in] | len | of message part |