Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline sirota  
#1 Оставлено : 10 апреля 2017 г. 9:05:15(UTC)
sirota

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.03.2012(UTC)
Сообщений: 7
Откуда: <eltyyjdcr

В под ведомстве около 100 организаций. Многие сервисы не предпологают привязку организации к основному сретификату. Следовательно у меня тонны ключей. Сейчас я руками каждый раз копирую скажем с токенов в реестр для архвации, или с токена на токен или с реестра на токен. В общем хотелось бы какой-то интерфейс. Пусть даже командная строка. Но не руками тысячу однотипных манипуляций. Спасибо.
Offline sirota  
#2 Оставлено : 10 апреля 2017 г. 11:42:16(UTC)
sirota

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.03.2012(UTC)
Сообщений: 7
Откуда: <eltyyjdcr

Сам отвечу на свой вопрос.
оказывается уже давно есть шикарный csptest.
Для 4 криптопро на делфи7 была навая программа:
Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    edt1: TEdit;
    edt2: TEdit;
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    edt3: TEdit;
    btn1: TButton;
    dlgOpen1: TOpenDialog;
    btn2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure btn1Click(Sender: TObject);
    procedure btn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
edt1.Text:='[reg][sbis][20'+Copy(IntToStr(CurrentYear+1), 3, 2)+']-';
//edt2.Text:='_'+Copy(IntToStr(CurrentYear), 3, 2);
edt2.Text:='_';
end;

procedure TForm1.btn1Click(Sender: TObject);
begin
if dlgOpen1.Execute then
  edt3.Text:=dlgOpen1.FileName;
end;

function ExecAndWait(const FileName,
                     Params: ShortString;
                     const WinState: Word): boolean; export; 
var 
  StartInfo: TStartupInfo; 
  ProcInfo: TProcessInformation; 
  CmdLine: ShortString; 
begin 
  { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x } 
  CmdLine := '"' + Filename + '" ' + Params; 
  FillChar(StartInfo, SizeOf(StartInfo), #0); 
  with StartInfo do 
  begin 
    cb := SizeOf(StartInfo); 
    dwFlags := STARTF_USESHOWWINDOW; 
    wShowWindow := WinState; 
  end; 
  Result := CreateProcess(nil, PChar( String( CmdLine ) ), nil, nil, false, 
                          CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, nil, 
                          PChar(ExtractFilePath(Filename)),StartInfo,ProcInfo); 
  { Ожидаем завершения приложения } 
  if Result then 
  begin 
    WaitForSingleObject(ProcInfo.hProcess, INFINITE); 
    { Free the Handles } 
    CloseHandle(ProcInfo.hProcess); 
    CloseHandle(ProcInfo.hThread); 
  end; 
end;

procedure TForm1.btn2Click(Sender: TObject);
var
  myFile: TextFile;
  nameKeyOrg, nameKeyNew: string;
begin
If FileExists(edt3.Text) then
  begin
  AssignFile(myFile, edt3.Text);
  reset(myFile);
  while (not EOF(myFile)) do
    begin
    Readln(myFile, nameKeyOrg);
    nameKeyNew:=StringReplace(edt1.Text+Copy(nameKeyOrg, 0, Pos(edt2.Text, nameKeyOrg)-1), ' ', '_', [rfReplaceAll]);
    ExecAndWait('c:\Program Files\Crypto Pro\CSP\csptest.exe', Format(' -keycopy -contsrc "%s" -pinsrc 12345678 -contdest \\.\registry\%s -pindest ""', [nameKeyOrg, nameKeyNew]), SW_SHOWNORMAL);
    end;
  CloseFile(myFile);
  end;
end;

end.

В edt1 то что надо добавить в начало
В edt2 то что надо удалить с конца после этого символа (мне приходят ключи вида "НАИМЕНОВАНИЕОРГАНИЗАЦИИ_17")
Ну и edt3 путь к файлу с именами контейнеров.
Имена контейнеров получил быстро так - вставил ключи, в криптопро открыл просмотреть сертификаты в контейнере - обзор и просто принтскрин и через файнреадер прогнал.
Offline sirota  
#3 Оставлено : 10 апреля 2017 г. 11:44:30(UTC)
sirota

Статус: Новичок

Группы: Участники
Зарегистрирован: 14.03.2012(UTC)
Сообщений: 7
Откуда: <eltyyjdcr

Теперь бы возможность дергать имена котейнеров замутить автоматом. было бы шикарно.
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.