IPWorks S/MIME 2020 C++ Edition

Questions / Feedback?

IssueCertificate Method

Creates a new certificate in the current store, signed by the selected certificate.


ANSI (Cross Platform)
int IssueCertificate(const char* lpszCertSubject, int iSerialNumber);

Unicode (Windows)
INT IssueCertificate(LPCWSTR lpszCertSubject, INT iSerialNumber);
- (void)issueCertificate:(NSString*)certSubject :(int)serialNumber;

IPWORKSSMIME_EXTERNAL int IPWORKSSMIME_CALL IPWorksSMIME_CertMgr_Do(void *lpObj, int methid, int cparam, void *param[], int cbparam[], int64 *lpllVal);


This method creates a new certificate in the current store, signed by the selected certificate. CertSubject specifies the subject of the new certificate. A new keyset (public/private key pair) is generated and associated with the new certificate.

The certificate subject is a comma separated list of distinguished name fields and values. For instance "CN=www.server.com, OU=test, C=US, E=support@nsoftware.com". Common fields and their meanings are displayed below.

CNCommon Name. This is commonly a host name like www.server.com.
OUOrganizational Unit
EEmail Address

If a field value contains a comma it must be quoted.

SerialNumber specifies the certificate serial number. All certificates signed by the same issuer must have different (unique) serial numbers.

The current certificate selected by the class will be used as the issuing certificate.

If no certificate has been selected in the current CertStore prior to calling this method, or if the selected certificate does not have an associated private key, the method fails with an error.

The time validity of the new certificate is determined by the CertValidityTime configuration setting, and the key size by the CertKeyLength configuration setting.

NOTE: This functionality is only available in Windows.

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.
IPWorks S/MIME 2020 C++ Edition - Version 20.0 [Build 8154]