ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / WLanguage / WLanguage functions / Standard functions / XML file functions
  • Properties specific to xmlSignature variables
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
xmlSignature (Variable type)
In french: xmlSignature
The xmlSignature type is used to define the advanced characteristics of an XML signature. You can define and change the characteristics of this signature using different WLanguage properties.
Remark: For more details on the declaration of this type of variable and the use of WLanguage properties, see Declaring a variable.
Example
MySignature is xmlSignature
MySignature.AlgorithmNormalization = atC14NExclusiveWithComments
MySignature.AlgorithmSignature = asRSA_SHA_160
MySignature.Key = MyCertificate
Add(MySignature.Reference, myReference)
MySignature.KeyInformation[1].Type = informationKeyX509
// Example that uses a web service included to the project
// This example does not work via a copy/paste

// SOAPAddXMLSignature takes in 2nd parameter the location where the signature will be placed.
// This location is described in the WSDL that we want to use, by an XSD type.
// In this code example, this location is described in "Security.Assetion.Signature"
// that comes from the WSDL of the web service that we want to call.

// Therefore, we must refer to the WSDL that we are using to find this location.

MyRequest is wsRequest
MySecurity is Security // web service included in the project. 

// Builds an identifier
id is string = GetGUID(guidFormatted)
id = "_" + Middle(id, 2, Length(id) - 2)

// Initializes the signature
cMySignature is xmlSignature
cMySignature.AlgorithmNormalization = atC14NExclusive
cMySignature.AlgorithmSignature = saRSA_SHA_256
// Key file OR certificate retrieved by the certificate functions
cMySignature.Key = fExeDir + fSep + "mykey.p12"
cMySignature.KeyPassword = "password"
cMySignature.KeyFileType = tfcPKCS12
cMySignature.Reference[1].HashAlgorithm = HA_SHA_256
cMySignature.Reference[1].URI = "#" + id
cMySignature.Reference[1].Transformation[1] = atEnveloped
cMySignature.Reference[1].Transformation[2] = atC14NExclusive
x509 is xmlSignatureInformationKeyX509
x509.WithCertificate = True
cMySignature.KeyInformation[1] = x509

// End of signature initialization
dtCurrentDateTime is DateTime
MySecurity.Assertion:ID = id
MySecurity.Assertion:IssueInstant = dtCurrentDateTime
MySecurity.Assertion:Version = "2.0"
MySecurity.Assertion.Issuer = "test"
MaSecurity.Assertion.Issuer:Format = ...
	"urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"

// Adds the signature
SOAPAddXMLSignature(MaRequest, MySecurity.Assertion.Signature, cMySignature)
Remarks

Properties specific to xmlSignature variables

The following properties can be used to handle xmlSignature variables:
Property nameType usedEffect
AlgorithmNormalizationInteger constantMethod for standardizing the XML (C14N):
  • atNone: no standardization method.
  • atC14N11Inclusive: Inclusive C14N11 standardization method.
  • atC14N11InclusiveWithComments: Inclusive C14N11 standardization method with comments.
  • atC14NExclusive: Exclusive C14N standardization method.
  • atC14NExclusiveWithComments: Exclusive C14N standardization method with comments.
  • atC14NInclusive: Inclusive C14N standardization method.
  • atC14NInclusiveWithComments: Inclusive C14N standardization method with comments.
AlgorithmSignatureInteger constantMethod used for the signature:
  • saDSA_SHA_160: Digital Signature Algorithm (DSA) and SHA-160.
  • saECDSA_SHA_224: Elliptic Curve Digital Signature Algorithm (ECDSA) and SHA-224.
  • saECDSA_SHA_256: Elliptic Curve Digital Signature Algorithm (ECDSA) and SHA-256.
  • saECDSA_SHA_384: Elliptic Curve Digital Signature Algorithm (ECDSA) and SHA-384.
  • saECDSA_SHA_512: Elliptic Curve Digital Signature Algorithm (ECDSA) and SHA-512.
  • saRSA_SHA_160: RSA encryption algorithm and SHA-160.
  • saRSA_SHA_256: RSA encryption algorithm and SHA-256.
  • saRSA_SHA_384: RSA encryption algorithm and SHA-384.
  • saRSA_SHA_512: RSA encryption algorithm and SHA-512.
KeyCertificate or key file used for the signature. If this property corresponds to a file, the KeyFileType property must be specified.
KeyFileTypeInteger constantIf the Key property corresponds to a file, the KeyFileType property is used to define the type of file encoding:
  • tfcBinary: binary encoding.
  • tfcDER: DER encoding (Distinguished Encoding Rule).
  • tfcPEM: PEM encoding.
  • tfcPKCS12: PKCS12 encoding.
  • tfcPKCS8DER: PKCS8 DER encoding.
  • tfcPKCS8PEM: PKCS8 PEM encoding.
KeyInformationArray of xmlSignatureInformationKeyX509 variablesUsed to specify information about the key used.
KeyPasswordCharacter stringPassword used to decrypt the private key.
ReferenceArray of xmlSignatureReferenceElements to sign.
Minimum version required
  • Version 18
This page is also available for…
Comments
Click [Add] to post a comment

Last update: 05/16/2024

Send a report | Local help