mrAnderson33

перечисление криптопровайдеров c++(CryptoAPI)

Jun 14th, 2018
350
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <Windows.h>
  2. #include <iostream>
  3.  
  4. int main()
  5. {
  6.     DWORD dwIndex = 0;
  7.     DWORD dwType;
  8.     DWORD cbName;
  9.     LPTSTR pszName;
  10.  
  11.     while (CryptEnumProviders(dwIndex, NULL, 0, &dwType, NULL, &cbName))
  12.     {
  13.         if (!cbName)
  14.             break;
  15.  
  16.         if (!(pszName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT, cbName)))
  17.         {
  18.             std::cerr << "Error  in LocalAlloc";
  19.             return -2;
  20.         }
  21.  
  22.         if (!CryptEnumProviders(dwIndex++, NULL, 0, &dwType, pszName, &cbName))
  23.         {
  24.             std::cerr << "Error : CryptEnumProviders";
  25.             return -1;
  26.         }
  27.  
  28.         std::cout << "--------------------------------" << std::endl;
  29.         std::cout << "Provider name: " << pszName << std::endl;
  30.         std::cout << "Provider type: " << dwType << std::endl;
  31.  
  32.         LocalFree(pszName);
  33.     }
  34.         dwIndex = 0;
  35.         dwType = 0;
  36.         cbName = 0;
  37.         pszName = NULL;
  38.  
  39.     while (CryptEnumProviderTypes(dwIndex, NULL, 0, &dwType, NULL, &cbName))
  40.     {
  41.         if (!cbName)
  42.             break;
  43.  
  44.         if (!(pszName = (LPTSTR)LocalAlloc(LMEM_ZEROINIT, cbName)))
  45.             return -3;
  46.  
  47.         if (!CryptEnumProviderTypes(dwIndex++, NULL, NULL, &dwType, pszName, &cbName))
  48.         {
  49.             std::cerr<<"CryptEnumProvidersTypes";
  50.             return -4;
  51.         }
  52.  
  53.         std::cout << "--------------------------------" << std::endl;
  54.         std::cout << "Type name: " << pszName << std::endl;
  55.         std::cout << "Type ID: " << dwType << std::endl;
  56.  
  57.         LocalFree(pszName);
  58.     }
  59.  
  60.  
  61.     system("pause");
  62.     return 0;
  63. }
Advertisement
Add Comment
Please, Sign In to add comment