c ++ - Udvikling af 64-bit applikationer, der bruger MS CryptoAPI

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg er en C ++-udvikler, men har ikke en stærk baggrund i Windows-udvikling.


Mit hovedspørgsmål drejer sig om brugen af ​​Crypto API. Jeg vil bruge funktioner som CryptAcquireContext.
Mens du forsker mere om dette API, beskrives det kun som 'Win32 Crypto API.' Jeg spekulerer på, om der er 'Win64 Crypto API'? [3] [4]


Hvis ikke, hvis jeg udvikler en applikation, der gør brug af 'Win32 Crypto API' i Visual Studio og kompilere som 64 bit mode. Det ville være bedre, hvis jeg havde samlet i 32 bit?


Hvad skal jeg gøre for at udvikle en 64-bit applikation, der bruger Crypto API?


Rapportér eventuelt eventuelle problemer, du havde udviklet applikationer til 64 bit, mens du bruger krypto-API'en, hent certifikater, bære signaturer osv.


Artikler er meget velkomne.

Bedste reference


Crypto api fungerer fint i 64 bit, brug bare \%ProgramFiles\%Microsoft SDKsWindowsvX.XLibx64 som dit bibliotek i stedet for \%ProgramFiles\%Microsoft SDKsWindowsvX.XLib og det vil fungere fint, der skal ikke være nogen forskel mellem 32 bit og 64 bit bibliotek, der ikke håndteres ved at bruge de korrekte datatyper til opkaldene (specifikt markørbredde)

Andre referencer 1


Udtrykket 'Win32' er at skelne det fra en .Net kryptografi API, ikke en 64-bit API. Dine forskningsressourcer er nok ikke blevet opdateret til at bruge nyere udtryk som 'Win64' eller 'native.' Det ser ikke ud som MSDN gør den fejl.


Der bør ikke være problemer med at bruge det med en 64-bit applikation (undtagen CAPICOM, som kun er 32-bit).

Andre referencer 2


Crypto API findes i ADVAPI DLL. Men du link til CAPICOM, som er udskrevet, skal ikke bruges, og er kun 32 bit.


CryptAcquireContext () er ADVAPI, som findes i både 64 bit og 32 bit Windows.