Cryptographie sous VB6.0

Le
jean saint jalmes
Bonjour,

J'utilise l'API advapi32.dll pour crypter des données avec le hash code MD5.

pour cela, j'utilise la fonction suivante :

CryptAcquireContext(ProvHandle, vbNullChar, MS_DEF_PROV, PROV_RSA_FULL, 0&)

avec:

Private Const MS_DEF_PROV As String * 42 = "Microsoft Base Cryptographic
Provider v1.0" & vbNullChar
Private Const PROV_RSA_FULL As Long = 1&

Sur certains PC de mon réseau, j'obtiens l'erreur 80090016

Il semble que le provider "Microsoft Base Cryptographic Provider v1.0" ne
soit pas disponible sur les postes en question. Comment installer ce provider
???

Merci d'avance, Jean
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
jean-marc
Le #15355521
"jean saint jalmes" message news:
Bonjour,

J'utilise l'API advapi32.dll pour crypter des données avec le hash code
MD5.

pour cela, j'utilise la fonction suivante :

CryptAcquireContext(ProvHandle, vbNullChar, MS_DEF_PROV, PROV_RSA_FULL,
0&)

avec:

Private Const MS_DEF_PROV As String * 42 = "Microsoft Base Cryptographic
Provider v1.0" & vbNullChar
Private Const PROV_RSA_FULL As Long = 1&

Sur certains PC de mon réseau, j'obtiens l'erreur 80090016

Il semble que le provider "Microsoft Base Cryptographic Provider v1.0" ne
soit pas disponible sur les postes en question. Comment installer ce
provider
???



Hello,

Dans le cas présent, il semble que des personnes ayant rencontré
ce problème l'aient résolu, comme indiqué ici :
http://cboard.cprogramming.com/showthread.php?tˆ21

Mais peut être avais déjà tu essayé ceci sans succès, auquel cas
c'est utile de le signaler :-)

Si ça ne fonctionne pas, il y a une floppée d'articles sur le sujet:
http://www.google.fr/search?hl=fr&q€090016&meta

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
jean saint jalmes
Le #15355101
Merci Jean Marc.

Je n'ai pas pu tester la première solution car il me manque la définition de
la constante CRYPT_NEWKEYSET.

J'ai lu presque toutes les réponses sur votre deuxième lien mais je n'arrive
pas à solutionner mon problème.

Sur 12 PC connectés, seuls 4 PC fonctionnent correctement avec mon
application. Ils sont pourtant tous sous Windows XP Pro service pack 2 (sauf
un serveur 2003) leurs base de registre sont identiques au niveau
HKEY_LOCAL_MACHINE/Software/Windows/Cryptography/Defaults/Provider/Microsoft
base cryptographic provider v1.0

La mise à jour de tous les patch a été faite !!!!

Merci pour votre aide, Jean
Jacques93
Le #15355071
Bonjour jean saint jalmes,
jean saint jalmes a écrit :
Merci Jean Marc.

Je n'ai pas pu tester la première solution car il me manque la définition de
la constante CRYPT_NEWKEYSET.

J'ai lu presque toutes les réponses sur votre deuxième lien mais je n'arrive
pas à solutionner mon problème.

Sur 12 PC connectés, seuls 4 PC fonctionnent correctement avec mon
application. Ils sont pourtant tous sous Windows XP Pro service pack 2 (sauf
un serveur 2003) leurs base de registre sont identiques au niveau
HKEY_LOCAL_MACHINE/Software/Windows/Cryptography/Defaults/Provider/Microsoft
base cryptographic provider v1.0

La mise à jour de tous les patch a été faite !!!!

Merci pour votre aide, Jean



Par rapport au premier lien indiqué par jean-marc, voici les constantes
(l'erreur que tu rencontres correspond à NTE_BAD_KEYSET)

' NTE_BAD_KEYSET
Private Const NTE_BAD_KEYSET = &H80090016

'CryptSetProvParam
Private Const PROV_RSA_FULL = 1
Private Const PROV_RSA_SIG = 2
Private Const PROV_DSS = 3
Private Const PROV_FORTEZZA = 4
Private Const PROV_MS_EXCHANGE = 5
Private Const PROV_SSL = 6
Private Const PROV_RSA_SCHANNEL = 12
Private Const PROV_DSS_DH = 13
Private Const PROV_EC_ECDSA_SIG = 14
Private Const PROV_EC_ECNRA_SIG = 15
Private Const PROV_EC_ECDSA_FULL = 16
Private Const PROV_EC_ECNRA_FULL = 17
Private Const PROV_SPYRUS_LYNKS = 20

' Definitions des flags pour CryptAcquireContext
Private Const CRYPT_VERIFYCONTEXT = &HF0000000
Private Const CRYPT_NEWKEYSET = &H8&
Private Const CRYPT_DELETEKEYSET = &H10&
Private Const CRYPT_MACHINE_KEYSET = &H20&


Et un article sur le sujet, qui semble confirmer la méthode :


--
Cordialement,

Jacques.
jean saint jalmes
Le #15376801
Merci Jacques,

Entre temps j'avais trouvé la valeur de CRYPT_NEWKEYSET et cela résoud
complètement mon problème.

Merci aussi à Jean-Marc.

Cordialement, Jean
Jean-marc
Le #15376781
jean saint jalmes wrote:
Merci Jacques,

Entre temps j'avais trouvé la valeur de CRYPT_NEWKEYSET et cela résoud
complètement mon problème.

Merci aussi à Jean-Marc.

Cordialement, Jean




Merci du retour !

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Jacques93
Le #15376771
jean saint jalmes a écrit :
Merci Jacques,

Entre temps j'avais trouvé la valeur de CRYPT_NEWKEYSET et cela résoud
complètement mon problème.

Merci aussi à Jean-Marc.

Cordialement, Jean



Merci, *surtout* à jean-marc, dirai je. :-)

PS : Ce n'est pas compliqué de trouver le valeurs des constantes, à
condition d'avoir Visual Studio, elles se trouvent dans les .H de Visual
C, et souvent sur Google.

--
Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme