AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Este contenido se ha traducido automáticamente.  Haga clic aquí  para ver la versión en inglés.
Ayuda / WLanguage / Funciones WLanguage / Funciones estándar / Funciones de certificados
  • Validez de Certificate (sintaxis 1)
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Crea la firma de un string.
WINDEVCódigo de Usuario (UMC)
// 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)
Sintaxis
WINDEVLinuxCódigo de Usuario (UMC)

Firmar una cadena a través de un Certificate Variable Ocultar los detalles

<Result> = CertificateSignString(<String to Sign> , <Certificate>)
<Result>: Buffer
Firma de la cadena (en formato PKCS7 (DER)). Este búfer puede ser utilizado posteriormente por CertificateCheckString para comprobar la correspondencia entre la firma y la cadena.
<String to Sign>: Cadena de caracteres Ansi o Unicode o Buffer
Cadena de caracteres a firmar.
<Certificate>: Variable de tipo Certificate
Nombre de la variable Certificate que contiene el Certificate que se utilizará para firmar la cadena.

Firmar una cadena a través de una firma numérica Ocultar los detalles

<Result> = CertificateSignString(<String to Sign> , <Certificate file> , <Password> , <Option>)
<Result>: Buffer
Firma de la cadena (en el formato solicitado). Este búfer puede ser utilizado posteriormente por CertificateCheckString para comprobar la correspondencia entre la firma y la cadena.
<String to Sign>: Cadena de caracteres Ansi o Unicode o Buffer
Cadena de caracteres a firmar.
<Certificate file>: Cadena de caracteres o memoria intermedia
  • ruta completa a un archivo PKCS12 (.p12/.pfx) que contiene la clave privada y los certificados. Este archivo puede incluirse en la biblioteca de la aplicación (archivo WDL).
  • Buffer que contiene la clave privada y los certificados.
    Si se utiliza la constante certSignatureOnly, este búfer puede contener sólo la clave privada.
<Password>: Cadena de caracteres
Contraseña que se usará para desencriptar el archivo de Certificate si éste está protegido por contraseña.
<Option>: Constante o combinación de constantes de tipo Integer
Permite especificar:
  • el algoritmo de hash utilizado (opcional para una firma en formato PKCS7):
    certMD5Algoritmo MD5.
    No se recomienda porque no es confiable. Este tipo de algoritmo no está permitido con las firmas de "curva elíptica.
    certSHA160Algoritmo SHA1.
    certSHA256Algoritmo SHA2. Se obtiene un resultado de 256 bits.
    certSHA384Algoritmo SHA-384. Se obtiene un resultado de 384 bits.
    Este tipo de algoritmo no está soportado por las firmas "DSA".
    certSHA512Algoritmo SHA-512. Se obtiene un resultado de 512 bits.
    Este tipo de algoritmo no está soportado por las firmas "DSA".
  • el formato de la firma:
    certPKCS7EnvelopedContenedor en formato PKCS7 (DER) que contiene la firma, la cadena de certificados y los datos firmados..
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado.
    certPKCS7Enveloped + certPKCS7PEMContenedor en formato PKCS7 (PEM) que contiene la firma, la cadena de certificados y los datos firmados..
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado.
    certPKCS7WithCertificateContenedor en formato PKCS7 (DER) que contiene la firma y la cadena de certificados..
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado.
    certPKCS7WithCertificate + certPKCS7PEMContenedor en formato PKCS7 (PEM) que contiene la firma y la cadena de certificados..
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado.
    certPKCS7WithoutCertificateContenedor en formato PKCS7 (DER) que contiene la firma.
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado..
    certPKCS7WithoutCertificate + certPKCS7PEMContenedor en formato PKCS7 (PEM) que contiene la firma.
    Observación: si se utiliza esta constante, el algoritmo de hash es opcional. Si no se especifica, se elegirá automáticamente un algoritmo apropiado..
    certSignatureOnlyLa salida contiene la firma aproximada, sin contenedor..
    Esta opción es necesaria para la conformidad del software de contabilidad (norma NF525).. Con esta opción, sólo se utilizará la sección clave del archivo PFX (no se utilizará la sección Certificate que contiene la fecha).
    Atención: si se utiliza esta constante, se debe especificar el algoritmo de hashing.
Observación: El algoritmo de firma se define por la clave privada (RSA, DSA, curva elíptica)..
Observaciones

Validez de Certificate (sintaxis 1)

Antes de firmar una cadena, se recomienda comprobar la validez del Certificate (ValidForSignature Property del Certificate Variable). Esta propiedad se utiliza para averiguar si el Certificate posee una clave privada, así como todas las características necesarias para realizar una firma. Si el valor de esta propiedad es False, la función CertificateSignString devuelve un error.
Clasificación Lógica de negocio / UI: Lógica de negocio
Componente: wd290std.dll
Versión mínima requerida
  • Versión 16
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 14/07/2022

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