Le type
xmlSignature permet de définir toutes les caractéristiques avancées d'une signature XML. Les caractéristiques de cette signature peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez
Déclaration d'une variable.
MaSignature est un xmlSignature
MaSignature.AlgorithmeNormalisation = atC14NExcluAvecCommentaire
MaSignature.AlgorithmeSignature = asRSA_SHA_160
MaSignature.Clé = MonCertificat
Ajoute(MaSignature.Référence, maRéférence)
MaSignature.InformationClé[1] = informationCléX509
// Exemple utilisant un Webservice intégré au projet
// Cet exemple ne fonctionne pas par un simple copier/coller
// SOAPAjouteSignatureXML prend en 2ème paramètre l'emplacement où apposer la signature.
// Cet emplacement est décrit dans le WSDL qu'on souhaite utiliser, par un type XSD.
// Dans cet exemple de code, cet emplacement est décrit dans "Security.Assetion.Signature"
// qui provient du WSDL du Webservice qu'on souhaite appeler.
// Il faut donc se référer au WSDL qu'on utilise pour trouver cet emplacement.
MaRequête est un wsRequête
MaSecurity est un Security // Webservice intégré dans le projet.
// Construit un identifiant
id est une chaîne = DonneGUID(guidFormaté)
id = "_" + Milieu(id, 2, Taille(id) - 2)
// Initialise la signature
cMaSignature est une xmlSignature
cMaSignature.AlgorithmeNormalisation = atC14NExclu
cMaSignature.AlgorithmeSignature = asRSA_SHA_256
// Fichier de clé OU certificat récupéré par les fonctions certificats
cMaSignature.Clé = fRepExe + fSep + "macle.p12"
cMaSignature.MotDePasseClé = "password"
cMaSignature.TypeFichierClé = tfcPKCS12
cMaSignature.Référence[1].AlgorithmeHash = HA_SHA_256
cMaSignature.Référence[1].URI = "#" + id
cMaSignature.Référence[1].Transformation[1] = atEnveloppée
cMaSignature.Référence[1].Transformation[2] = atC14NExclu
x509 est un xmlSignatureInformationCléX509
x509.AvecCertificat = Vrai
cMaSignature.InformationClé[1] = x509
// Fin initialisation de la signature
dhDateHeureCourante est un DateHeure
MaSecurity.Assertion:ID = id
MaSecurity.Assertion:IssueInstant = dhDateHeureCourante
MaSecurity.Assertion:Version = "2.0"
MaSecurity.Assertion.Issuer = "test"
MaSecurity.Assertion.Issuer:Format = ...
"urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName"
// Ajoute la signature
SOAPAjouteSignatureXML(MaRequête, MaSecurity.Assertion.Signature, cMaSignature)
Remarques
Propriétés spécifiques à la description des variables de type xmlSignature
Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type
xmlSignature :
| | |
Nom de la propriété | Type manipulé | Effet |
---|
AlgorithmeNormalisation | Constante de type Entier | Méthode de standardisation du XML (C14N) : - atAucune : aucune méthode de standardisation.
- atC14N11Inclus : Méthode de standardisation C14N11 inclusive.
- atC14N11InclusAvecCommentaire : Méthode de standardisation C14N11 inclusive avec commentaires.
- atC14NExclu : Méthode de standardisation C14N exclusive.
- atC14NExcluAvecCommentaire : Méthode de standardisation C14N exclusive avec commentaires.
- atC14NInclus : Méthode de standardisation C14N inclusive.
- atC14NInclusAvecCommentaire : Méthode de standardisation C14N inclusive avec commentaires.
|
AlgorithmeSignature | Constante de type Entier | Méthode utilisée pour la signature :
- asDSA_SHA_160 : algorithme de cryptage DSA et algorithme de hachage de type SHA 160
- asRSA_SHA_160 : algorithme de cryptage RSA et algorithme de hachage de type SHA 160
- asRSA_SHA_256 : algorithme de cryptage RSA et algorithme de hachage de type SHA 256
|
Clé | | Certificat ou fichier de clé utilisé pour la signature. Si cette propriété correspond à un fichier, la propriété TypeFichierClé doit être spécifiée. |
InformationClé | Tableau de variables de type xmlSignatureInformationCléX509 | Permet de spécifier des informations sur la clé utilisée. |
MotDePasseClé | Chaîne de caractères | Mot de passe permettant de décrypter la clé privée. |
Référence | Tableau de xmlSignatureRéférence | Eléments à signer. |
TypeFichierClé | Constante de type Entier | Si la propriété Clé correspond à un fichier, la propriété TypeFichierClé permet de définir le type d'encodage du fichier : - tfcBinaire : encodage binaire.
- tfcDER : encodage de type DER (Distinguished Encoding Rule).
- tfcPEM : encodage de type PEM.
- tfcPKCS12 : encodage de type PKCS12.
- tfcPKCS8DER : encodage de type PKCS8 DER.
- tfcPKCS8PEM : encodage de type PKCS8 PEM.
|