Примеры
В данном разделе приведены примеры работы с электронной подписью, в том числе CAdES.
Чтение подписанного файла
| const cms = new trusted.cms.SignedData();
cms.load("signedfile.sig", trusted.DataFormat.PEM);
|
Подпись
Открепленная подпись данных:
| const cert = trusted.pki.Certificate.load("./certfile.cet",
trusted.DataFormat.DER);
const sd = new trusted.cms.SignedData();
sd.policies = ["detached"];
sd.content = {
type: trusted.cms.SignedDataContentType.buffer,
data: "Hello world"
};
sd.sign(cert);
|
Формирование подписи без аттрибутов:
| const cert = trusted.pki.Certificate.load("./certfile.cet",
trusted.DataFormat.DER);
const sd = new trusted.cms.SignedData();
sd.policies = ["noAttributes"];
sd.content = {
type: trusted.cms.SignedDataContentType.buffer,
data: "Hello world"
};
sd.sign(cert);
|
Прикрепленная подпись файла:
| const cert = trusted.pki.Certificate.load("./certfile.cet",
trusted.DataFormat.DER);
const sd = new trusted.cms.SignedData();
sd.policies = [];
sd.content = {
type: trusted.cms.SignedDataContentType.url,
data: "./file_for_sign.txt"
};
sd.sign(cert);
sd.save("./outfile.sig");
|
Усовершенствованная подпись
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 | const cert = trusted.pki.Certificate.load("./certfile.cet",
trusted.DataFormat.DER);
const connSettings = new trusted.utils.ConnectionSettings();
connSettings.Address = "http://qs.cryptopro.ru/tsp/tsp.srf";
const sdCades = new trusted.cms.SignedData();
sdCades.content = {
type: trusted.cms.SignedDataContentType.buffer,
data: "CAdES test 1"
};
const cadesParams = new trusted.cms.CadesParams();
cadesParams.cadesType = trusted.cms.CadesType.ctCadesXLT1;
cadesParams.connSettings = connSettings;
cadesParams.tspHashAlg = "1.2.643.7.1.1.2.2";
sdCades.signParams = cadesParams;
sdCades.sign(cert);
sd.save("./outfile.sig");
|
Подпись со штампом времени
1
2
3
4
5
6
7
8
9
10
11
12
13
14 | const sdTspContent = new trusted.cms.SignedData();
sdTspContent.content = {
type: trusted.cms.SignedDataContentType.buffer,
data: "Signature with time stamp 1."
};
const connSettings = new trusted.utils.ConnectionSettings();
connSettings.Address = "http://qs.cryptopro.ru/tsp/tsp.srf";
const tspParams = new trusted.cms.TimestampParams();
tspParams.connSettings = connSettings;
tspParams.tspHashAlg = "1.2.643.7.1.1.2.2";
tspParams.stampType = trusted.cms.StampType.stContent;
sdTspContent.signParams = tspParams;
sdTspContent.sign(cert);
sd.save("./outfile.sig");
|
Соподпись
Добавление подписчика (соподпись):
| const cms = new trusted.cms.SignedData();
cms.load("./outfile.sig");
const secondSignerCert = trusted.pki.Certificate.load("./certfile2.cet",
trusted.DataFormat.DER);
cms.sign(secondSignerCert);
sd.save("./outfile.sig");
|
Проверка подписи
Проверка открепленной подписи:
| const cms = new trusted.cms.SignedData();
cms.load("./outfile.sig");
cms.content = {
type: trusted.cms.SignedDataContentType.url,
data: "./data.docx"
};
const res = cms.verify();
|
Проверка прикрепленной подписи:
| const cms = new trusted.cms.SignedData();
cms.load("./outfile.sig");
const res = cms.verify();
|
Проверка конкретного подписчика:
| const cms = new trusted.cms.SignedData();
cms.load("./outfile.sig");
const signers = cms.signers();
const signer = signers.items(0);
const res = cms.verify(signer);
|