информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Где водятся OGRыСетевые кракеры и правда о деле ЛевинаПортрет посетителя
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Крупный сбой Azure и других сервисов... 
 Серьезный сбой AWS положил множество... 
 Фишинговая атака на Python-разработчиков 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] CryptoAPI из под сервиса 16.03.04 09:48  
Автор: toobig Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Что-то не получается экспортировать 3DES ключик из файла в сервисе. Притом если собрать тот-же код как консольное приложение все в шоколаде. Пробовал использовать флаг CRYPT_MACHINE_KEYSET - те же яица вид сбоку.
Может кто знает в чем фишка.

if(!CryptAcquireContext(&hProv,"_hprvkey1",MS_ENHANCED_PROV,PROV_RSA_FULL,0 CRYPT_MACHINE_KEYSET) && !CryptAcquireContext(&hProv,"_hprvkey1",MS_ENHANCED_PROV,PROV_RSA_FULL,CRYPT_NEWKEYSET/*CRYPT_MACHINE_KEYSET*/))
{
ResCode = -1;
}
// Open key from file
RSAPubKey1024 PubKey;
dwLen=sizeof(RSAPubKey1024);
CFile dskFile;
if(!dskFile.Open(KeyFileName.c_str(),CFile::modeRead))
{
ResCode = -10034;
goto Ennd;
}
// Read
if(dskFile.Read(&PubKey,dwLen) != dwLen)
{
ResCode = -101;
goto Ennd;
}
dskFile.Close();
// Import key
if(!CryptImportKey(hProv,(unsigned char *) &PubKey,dwLen,0,0 ,&wrkKey))
{
DWORD Err = GetLastError();
ResCode = -102;
goto Ennd;
}

// Create HASH
if(!CryptCreateHash(hProv,CALG_MD5,0,0,&hHash))
{
ResCode = -103;
goto Ennd;
}
// Read 3DES key from file
if (Data->Read(&EncryptedPartHeader, sizeof(EncryptedPartHeader)) != sizeof(EncryptedPartHeader))
{
ResCode = -104;
goto Ennd;
}
// Import 3DES key

/****** Вот здесь возвращает NTE_BAD_KEY
if(!CryptImportKey(hProv,(BYTE)&EncryptedPartHeader.kb,EncryptedPartHeader.KeyLen/*sizeof(RSA1024KeyExchBLOB),wrkKey,0,&h3DESKey))
{
ResCode = -105;
goto Ennd;
}
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach