Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cryptographie sous VB6.0

6 réponses
Avatar
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

6 réponses

Avatar
jean-marc
"jean saint jalmes" wrote in
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_' ;
Avatar
jean saint jalmes
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
Avatar
Jacques93
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 :

<http://support.microsoft.com/kb/238187>

--
Cordialement,

Jacques.
Avatar
jean saint jalmes
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
Avatar
Jean-marc
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_' ;
Avatar
Jacques93
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.