AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de archivos XML
  • Propiedades específicas de las variables de tipo xmlSignature
WINDEV
WindowsLinuxJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac Catalyst
Otros
Procedimientos almacenados
El tipo xmlSignature define las características avanzadas de una firma XML. Las características de la firma se pueden definir y cambiar utilizando diferentes propiedades WLanguage.
Nota: Para obtener más información sobre la declaración de este tipo de variable y el uso de propiedades WLanguage, consulte Declarar una variable.
Ejemplo
MySignature is xmlSignature
MySignature.NormalizationAlgorithm = atC14NExclusiveWithComments
MySignature.SignatureAlgorithm = saRSA_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.NormalizationAlgorithm = atC14NExclusive
cMySignature.SignatureAlgorithm = 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)
Propiedades

Propiedades específicas de las variables de tipo xmlSignature

Las siguientes propiedades pueden utilizarse para manipular variables de tipo xmlSignature:
Nombre de la propiedadTipo utilizadoEfecto
AlgorithmNormalizationConstante de tipo IntegerMétodo de canonicalización XML (C14N):
  • atNone: Ningún método de canonicalización.
  • atC14N11Inclusive: Canonicalización C14N11 inclusiva.
  • atC14N11InclusiveWithComments: Canonicalización C14N11 inclusiva con comentarios.
  • atC14NExclusive: Canonicalización C14N exclusiva.
  • atC14NExclusiveWithComments: Canonicalización C14N exclusiva con comentarios.
  • atC14NInclusive: Canonicalización C14N inclusiva.
  • atC14NInclusiveWithComments: Canonicalización C14N inclusiva con comentarios.
AlgorithmSignatureConstante de tipo IntegerAlgoritmo de firma:
  • saDSA_SHA_160: Algoritmo de firma digital (DSA) y SHA-160.
  • saECDSA_SHA_224: Algoritmo de firma digital de curva elíptica (ECDSA) y SHA-224.
  • saECDSA_SHA_256: Algoritmo de firma digital de curva elíptica (ECDSA) y SHA-256.
  • saECDSA_SHA_384: Algoritmo de firma digital de curva elíptica (ECDSA) y SHA-384.
  • saECDSA_SHA_512: Algoritmo de firma digital de curva elíptica (ECDSA) y SHA-512.
  • saRSA_SHA_160: Algoritmo de cifrado RSA y SHA-160.
  • saRSA_SHA_256: Algoritmo de cifrado RSA y SHA-256.
  • saRSA_SHA_384: Algoritmo de cifrado RSA y SHA-384.
  • saRSA_SHA_512: Algoritmo de cifrado RSA y SHA-512.
KeyCertificado o archivo de clave utilizado para la firma.
  • Si esta propiedad corresponde a un archivo, se debe especificar la propiedad KeyFileType.
  • New in SaaS
    Si esta propiedad corresponde a una variable de tipo Certificate, puede utilizar un certificado que se encuentre en una tarjeta inteligente.
    Nota: Esta funcionalidad solo está disponible en WINDEV Suite SaaS 2025 - Update 1. Para obtener más información, consulte Utilizar las novedades exclusivas de WINDEV Suite SaaS 2025.
KeyFileTypeConstante de tipo IntegerSi la propiedad Key corresponde a un archivo, la propiedad KeyFileType permite definir el tipo de codificación del archivo:
  • tfcBinary: Codificación binaria.
  • tfcDER: Codificación DER (Distinguished Encoding Rule).
  • tfcPEM: Codificación PEM.
  • tfcPKCS12: Codificación PKCS12.
  • tfcPKCS8DER: Codificación PKCS8 DER.
  • tfcPKCS8PEM: Codificación PKCS8 PEM.
KeyInformationArray de variables de tipo xmlSignatureInformationKeyX509Permite especificar información sobre la clave utilizada.
KeyPasswordCharacter string o Secret stringContraseña utilizada para descifrar la clave privada.
Novedad versión 2025
Cadenas secretas: Si utiliza el almacén de cadenas secretas, el tipo de cadena secreta utilizado para este parámetro debe ser "ANSI string - Latin".
Para obtener más información sobre las cadenas secretas y el almacén, consulte Almacén de cadenas secretas.
ReferenceArray de xmlSignatureReferenceElementos a firmar.
Versión mínima requerida
  • Versión 18
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 02/06/2025

Señalar un error o enviar una sugerencia | Ayuda local