Sign Method

Signs a message using a key.

Syntax

ANSI (Cross Platform)
int Sign(const char* lpszKeyName, const char* lpszAlgorithm, int bIsDigest);

Unicode (Windows)
INT Sign(LPCWSTR lpszKeyName, LPCWSTR lpszAlgorithm, BOOL bIsDigest);
- (void)sign:(NSString*)keyName :(NSString*)algorithm :(BOOL)isDigest;
#define MID_AZUREKEYS_SIGN 22

CLOUDKEYS_EXTERNAL int CLOUDKEYS_CALL CloudKeys_AzureKeys_Do(void *lpObj, int methid, int cparam, void *param[], int cbparam[], int64 *lpllVal);

Remarks

This method signs a message using the key specified by KeyName and the given Algorithm. The VersionId configuration setting can be used to target a specific key version.

The message data to sign is taken from the input stream supplied via the SetInputStream method, the specified InputFile, or the InputData property. The signature data is output to the output stream supplied via the SetOutputStream method, the specified OutputFile, or the OutputData property.

The Algorithm parameter specifies which algorithm to use to sign the data. Possible values are:

  • ES256: ECDSA using P-256 and SHA-256.
  • ES256K: ECDSA using P-256K and SHA-256.
  • ES384: ECDSA using P-384 and SHA-384.
  • ES512: ECDSA using P-521 and SHA-512.
  • PS256: RSASSA-PSS using SHA-256 and MGF1 with SHA-256.
  • PS384: RSASSA-PSS using SHA-384 and MGF1 with SHA-384.
  • PS512: RSASSA-PSS using SHA-512 and MGF1 with SHA-512.
  • RS256: RSASSA-PKCS1-v1_5 using SHA-256.
  • RS384: RSASSA-PKCS1-v1_5 using SHA-384.
  • RS512: RSASSA-PKCS1-v1_5 using SHA-512.

The IsDigest parameter specifies whether the message data is the original message (false) or a message digest (true). When supplying a message digest, keep in mind that the same digest will need to be provided in order to Verify the signature later.

If IsDigest is false, the class will automatically compute an appropriate message digest before the request is made. In such cases, the computed digest is made available via the MessageDigest configuration setting.

Error Handling (C++)

This method returns a result code; 0 indicates success, while a non-zero error code indicates that this method encountered an error during its execution. If an error occurs, the GetLastError() method can be called to retrieve the associated error message. (Note: This method's result code can also be obtained by calling the GetLastErrorCode() method after it returns.)

Copyright (c) 2022 /n software inc. - All rights reserved.
Cloud Keys 2020 C++ Edition - Version 20.0 [Build 8157]