ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / Certificate functions
  • Validity of certificate (syntax 1)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Creates the signature of a character string.
Reports and Queries
// String signature according to a certificate installed on the computer
// Caution: this syntax uses a Certificate variable.
// This syntax is not compatible with the compliance
// of accounting software (NF525 standard).
// The example corresponding to the NF525 standard is available in
// the additional examples
 
MyCertificate is Certificate
 
// Open the certificate picker of Windows
MyCertificate = CertificateSelect()
// Cancellation or error
IF MyCertificate.Name = "" THEN
RETURN
END
 
// Checks the certificate validity for the signature
IF MyCertificate.ValidForSignature = False THEN
Info("The selected certificate cannot be used to generate a signature.")
RETURN
END
 
// Retrieve the buffer containing the signature
bufSignature is Buffer
bufSignature = CertificateSignString("Character string to sign", MyCertificate)
 
// Retrieve the certificate found in the signature buffer
MyExtractedCertificate is Certificate
MyExtractedCertificate = CertificateExtract(buffSignature)
 
// Manage the errors
IF MyExtractedCertificate = Null THEN
RETURN
END
 
// Open the window for certificate properties
CertificateOpenProperties(MyExtractedCertificate)
Syntax
Reports and Queries

Signing a string via a Certificate variable Hide the details

<Result> = CertificateSignString(<String to Sign> , <Certificate>)
<Result>: Buffer
Signature of string (in PKCS7 format (DER)). This buffer can be used later by CertificateCheckString to check the correspondence between the signature and the string.
<String to Sign>: Ansi or Unicode character string or Buffer
Character string to sign.
<Certificate>: Certificate variable
Name of Certificate variable containing the certificate that will be used to sign the string.

Signing a string via a numeric signature Hide the details

<Result> = CertificateSignString(<String to Sign> , <Certificate file> , <Password> , <Option>)
<Result>: Buffer
Signature of string (in requested format). This buffer can be used later by CertificateCheckString to check the correspondence between the signature and the string.
<String to Sign>: Ansi or Unicode character string or Buffer
Character string to sign.
<Certificate file>: Character string or Buffer
  • Full path to a PKCS12 file (.p12/.pfx) containing the private key and the certificates. This file can be included in the application library (WDL file).
  • Buffer containing the private key and certificates.
    If the certSignatureOnly constant is used, this buffer can contain only the private key.
<Password>: Character string
Password that will be used to decrypt the certificate file if this one is password-protected.
<Option>: Integer constant (or combination of constants)
Allows you to specify:
  • the hashing algorithm used (optional for a signature in PKCS7 format):
    certMD5MD5 algorithm.
    Not recommended because unreliable. This type of algorithm is not allowed with the "elliptic curve" signatures.
    certSHA160SHA1 algorithm.
    certSHA256SHA2 algorithm. A 256-bit result is produced.
    certSHA384SHA-384 algorithm. A 384-bit result is produced.
    This type of algorithm is not supported by the "DSA" signatures.
    certSHA512SHA-512 algorithm. A 512-bit result is produced.
    This type of algorithm is not supported by the "DSA" signatures.
  • the signature format:
    certPKCS7EnvelopedContainer in PKCS7 format (DER) containing the signature, the string of certificates and the signed data.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certPKCS7Enveloped + certPKCS7PEMContainer in PKCS7 format (PEM) containing the signature, the string of certificates and the signed data.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certPKCS7WithCertificateContainer in PKCS7 format (DER) containing the signature and the string of certificates.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certPKCS7WithCertificate + certPKCS7PEMContainer in PKCS7 format (PEM) containing the signature and the string of certificates.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certPKCS7WithoutCertificateContainer in PKCS7 format (DER) containing the signature.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certPKCS7WithoutCertificate + certPKCS7PEMContainer in PKCS7 format (PEM) containing the signature.
    Remark: if this constant is used, the hashing algorithm is optional. If it is not specified, an appropriate algorithm will be automatically chosen.
    certSignatureOnlyThe output contains the rough signature, without container.
    This options is required for the compliance of accountancy software (NF525 standard). With this option, only the key section of PFX file will be used (the certificate section containing the date will not be used).
    Caution: if this constant is used, the hashing algorithm must be specified.
Remark: The signature algorithm is defined by the private key (RSA, DSA, Elliptic curve).
Remarks

Validity of certificate (syntax 1)

Before signing a string, it is recommended to check the validity of the certificate (ValidForSignature property of the Certificate variable). This property is used to find out whether the certificate owns a private key as well as all the characteristics required to perform a signature. CertificateSignString returns an error if this property is set to False.
Business / UI classification: Business Logic
Component: wd290std.dll
Minimum version required
  • Version 16
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 07/12/2022

Send a report | Local help