Статус: Новичок
  Группы: Участники
 Зарегистрирован: 17.05.2010(UTC) Сообщений: 9 Откуда: Moscow
  
	 
	
     | 
    
        
            
		      
                Код:
      CK_BYTE pubKeyValue[64]; //64 байта ключа из eToken
      BYTE keyParam = 1;     // Здесь Вы устанавливаете параметр, который использовался при генерации ключа
                              // 1 - STR_CRYPTO_PRO_A
                             // 2 - STR_CRYPTO_PRO_B
                             // 3 - STR_CRYPTO_PRO_C
      HCRYPTKEY cpPubKey;
      // Это заготовка для ключевого блоба КриптоПро. Формат структуры есть в SDK
      BYTE KeyBlob[100] = {
            0x06, 0x20, 0x00, 0x00, 0x23, 0x2E, 0x00, 0x00, 0x4D, 0x41, 0x47, 0x31, 0x00, 0x02, 0x00, 0x00, 
            0x30, 0x12, 0x06, 0x07, 0x2A, 0x85, 0x03, 0x02, 0x02, 0x23, 0x00, 0x06, 0x07, 0x2A, 0x85, 0x03, 
            0x02, 0x02, 0x1E, 0x01
      };
      // Дополняем блоб параметром ключа и самим ключом
      KeyBlob[26] = keyParam;
      memcpy(KeyBlob + 36, pubKeyValue, 64);
      // Импортируем ключ в КриптоПро
      if(!CryptImportKey(cpProvHandle, (BYTE*)&KeyBlob, sizeof(KeyBlob), NULL, PUBLICKEYBLOB, &cpPubKey))
      {
           // Вывод ошибки
      }
 
  
            
	  
         
     |