[cadesplugin] initial version

This commit is contained in:
Vohmyanin Sergey Vasilevich
2019-01-15 13:44:46 +03:00
parent 945fd1a382
commit 659481e8d3
16 changed files with 755 additions and 0 deletions
+8
View File
@@ -0,0 +1,8 @@
// Type definitions for cadesplugin 2.0
// Project: https://www.npmjs.com/package/cadesplugin
// Definitions by: Delagen <https://github.com/Delagen>,
// kvmi <https://github.com/kmvi>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 3.0
declare const cadesplugin: any;
+7
View File
@@ -0,0 +1,7 @@
{
"private": true,
"types": "index",
"typesVersions": {
">=3.1.0-0": { "*": ["ts3.1/*"] }
}
}
+97
View File
@@ -0,0 +1,97 @@
declare namespace CAdESCOM {
interface CPSigner {
Certificate: CAPICOM.Certificate;
CheckCertificate: boolean;
KeyPin: string;
Options: CADES_Common.ValuesOf<CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION>;
readonly SignatureTimeStampTime: CADES_Common.VarDate;
readonly SigningTime: CADES_Common.VarDate;
TSAAddress: string;
Display(hwndParent?: number, title?: string): void;
Load(fileName: string, password?: string): void;
}
interface CadesSignedData {
readonly Certificates: CAPICOM.Certificates;
Content: string;
ContentEncoding: CADES_Common.ValuesOf<CADESCOM_CONTENT_ENCODING_TYPE>;
DisplayData: CADES_Common.ValuesOf<CADESCOM_DISPLAY_DATA>;
Display(hwndParent?: number, title?: string): void;
EnhanceCades(cadesType?: CADES_Common.ValuesOf<CADESCOM_CADES_TYPE>, TSAAddress?: string, encodingType?: CADES_Common.ValuesOf<CAPICOM.CAPICOM_ENCODING_TYPE>): string;
SignCades(signer?: CPSigner, CadesType?: CADES_Common.ValuesOf<CADESCOM_CADES_TYPE>, bDetached?: boolean, EncodingType?: CADES_Common.ValuesOf<CAPICOM.CAPICOM_ENCODING_TYPE>): string;
VerifyCades(SignedMessage: string, CadesType?: CADES_Common.ValuesOf<CADESCOM_CADES_TYPE>, bDetached?: boolean): void;
}
interface Version {
readonly BuildVersion: number;
readonly MajorVersion: number;
readonly MinorVersion: number;
readonly toStringDefault: string;
toString(): string;
}
interface About {
readonly BuildVersion: number;
readonly MajorVersion: number;
readonly MinorVersion: number;
readonly PluginVersion: Version;
readonly Version: string;
CSPName(ProviderType?: number): string;
CSPVersion(ProviderName?: string, ProviderType?: number): Version;
ProviderVersion(ProviderName?: string, ProviderType?: number): string;
toString(): string;
}
interface CPSigners {
readonly Count: number;
Item(index: number): CPSigner;
}
interface SignedXML {
Content: string;
DigestMethod: string;
SignatureMethod: string;
SignatureType: CADES_Common.ValuesOf<CADESCOM_XML_SIGNATURE_TYPE>;
readonly Signers: CAPICOM.Signers;
Sign(signer?: CPSigner, XPath?: string): string;
Verify(SignedMessage: string, XPath?: string): void;
}
interface CPHashedData {
Algorithm: CADES_Common.ValuesOf<CAPICOM.CAPICOM_HASH_ALGORITHM>;
DataEncoding: CADES_Common.ValuesOf<CADESCOM_CONTENT_ENCODING_TYPE>;
Value: string;
Hash(newVal: string): void;
SetHashValue(newVal: string): void;
}
interface CPAttribute {
Name: CADES_Common.ValuesOf<CADESCOM_ATTRIBUTE>;
Value: any;
ValueEncoding: CADES_Common.ValuesOf<CAPICOM.CAPICOM_ENCODING_TYPE>;
}
interface RawSignature {
SignHash(hash: CPHashedData, certificate?: string): string;
VerifyHash(hash: CPHashedData, certificate: CAPICOM.Certificate, signature: string): void;
}
}
+57
View File
@@ -0,0 +1,57 @@
declare namespace CAdESCOM {
interface CPSignerAsync extends CADES_Common.Async<CPSigner> {
propset_Certificate(certificate: CAPICOM.CertificateAsync): Promise<void>;
propset_CheckCertificate(checkCertificate: boolean): Promise<void>;
propset_KeyPin(keyPin: string): Promise<void>;
propset_Options(options: CADES_Common.ValuesOf<CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION>): Promise<void>;
propset_TSAAddress(TSAAddress: string): Promise<void>;
}
interface CadesSignedDataAsync extends CADES_Common.Async<CadesSignedData> {
propset_DisplayData(displayData: CADES_Common.ValuesOf<CADESCOM_DISPLAY_DATA>): Promise<void>;
propset_Content(content: string): Promise<void>;
propset_ContentEncoding(contentEncoding: CADES_Common.ValuesOf<CADESCOM_CONTENT_ENCODING_TYPE>): Promise<void>;
}
interface VersionAsync extends CADES_Common.Async<Version> {
}
interface AboutAsync extends CADES_Common.Async<About> {
}
interface CPSignersAsync extends CADES_Common.Async<CPSigners> {
}
interface SignedXMLAsync extends CADES_Common.Async<SignedXML> {
propset_Content(content: string): Promise<void>;
propset_DigestMethod(digestMethod: string): Promise<void>;
propset_SignatureMethod(signatureMethod: string): Promise<void>;
propset_SignatureType(signatureType: CADES_Common.ValuesOf<CADESCOM_XML_SIGNATURE_TYPE>): Promise<void>;
}
interface CPHashedDataAsync extends CADES_Common.Async<CPHashedData> {
propset_Algorithm(algorithm: CADES_Common.ValuesOf<CAPICOM.CAPICOM_HASH_ALGORITHM>): Promise<void>;
propset_DataEncoding(dataEncoding: CADES_Common.ValuesOf<CADESCOM_CONTENT_ENCODING_TYPE>): Promise<void>;
}
interface CPAttributeAsync extends CADES_Common.Async<CPAttribute> {
propset_Name(name: CADES_Common.ValuesOf<CADESCOM_ATTRIBUTE>): Promise<void>;
propset_Value(value: any): Promise<void>;
propset_ValueEncoding(valueEncoding: CADES_Common.ValuesOf<CAPICOM.CAPICOM_ENCODING_TYPE>): Promise<void>;
}
interface RawSignatureAsync extends CADES_Common.Async<RawSignature> {
}
}
+74
View File
@@ -0,0 +1,74 @@
declare namespace CAdESCOM {
interface StoreLocationPlugin {
readonly CADESCOM_LOCAL_MACHINE_STORE: 1;
readonly CADESCOM_CURRENT_USER_STORE: 2;
readonly CADESCOM_CONTAINER_STORE: 100;
}
interface CADESCOM_STORE_LOCATION extends StoreLocationPlugin {
readonly CADESCOM_MEMORY_STORE: 0;
readonly CADESCOM_ACTIVE_DIRECTORY_USER_STORE: 3;
readonly CADESCOM_SMART_CARD_USER_STORE: 4;
}
interface CADESCOM_CADES_TYPE {
readonly CADESCOM_CADES_BES: 1;
readonly CADESCOM_CADES_DEFAULT: 0;
readonly CADESCOM_CADES_T: 5;
readonly CADESCOM_CADES_X_LONG_TYPE_1: 93;
}
interface CADESCOM_CONTENT_ENCODING_TYPE {
readonly CADESCOM_BASE64_TO_BINARY: 1;
readonly CADESCOM_STRING_TO_UCS2LE: 0;
}
interface CADESCOM_XML_SIGNATURE_TYPE {
readonly CADESCOM_XML_SIGNATURE_TYPE_ENVELOPED: 0;
readonly CADESCOM_XML_SIGNATURE_TYPE_ENVELOPING: 1;
readonly CADESCOM_XML_SIGNATURE_TYPE_TEMPLATE: 2;
}
interface CADESCOM_ENCRYPTION_ALGORITHM {
readonly CADESCOM_ENCRYPTION_ALGORITHM_RC2: 0;
readonly CADESCOM_ENCRYPTION_ALGORITHM_RC4: 1;
readonly CADESCOM_ENCRYPTION_ALGORITHM_DES: 2;
readonly CADESCOM_ENCRYPTION_ALGORITHM_3DES: 3;
readonly CADESCOM_ENCRYPTION_ALGORITHM_AES: 4;
readonly CADESCOM_ENCRYPTION_ALGORITHM_GOST_28147_89: 25;
}
interface CADESCOM_HASH_ALGORITHM {
readonly CADESCOM_HASH_ALGORITHM_SHA1: 0;
readonly CADESCOM_HASH_ALGORITHM_MD2: 1;
readonly CADESCOM_HASH_ALGORITHM_MD4: 2;
readonly CADESCOM_HASH_ALGORITHM_MD5: 3;
readonly CADESCOM_HASH_ALGORITHM_SHA_256: 4;
readonly CADESCOM_HASH_ALGORITHM_SHA_384: 5;
readonly CADESCOM_HASH_ALGORITHM_SHA_512: 6;
readonly CADESCOM_HASH_ALGORITHM_CP_GOST_3411: 100;
readonly CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_256: 101;
readonly CADESCOM_HASH_ALGORITHM_CP_GOST_3411_2012_512: 102;
}
interface CADESCOM_ATTRIBUTE {
readonly CADESCOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME: 0;
readonly CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME: 1;
readonly CADESCOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION: 2;
readonly CADESCOM_ATTRIBUTE_OTHER: -1;
}
interface CADESCOM_DISPLAY_DATA {
readonly CADESCOM_DISPLAY_DATA_NONE: 0;
readonly CADESCOM_DISPLAY_DATA_CONTENT: 1;
readonly CADESCOM_DISPLAY_DATA_ATTRIBUTE: 2;
}
interface CADESCOM_InstallResponseRestrictionFlags {
readonly CADESCOM_AllowNone: 0;
readonly CADESCOM_AllowNoOutstandingRequest: 1;
readonly CADESCOM_AllowUntrustedCertificate: 2;
readonly CADESCOM_AllowUntrustedRoot: 4;
readonly CADESCOM_SkipInstallToStore: 0x10000000;
}
}
@@ -0,0 +1,12 @@
cadesplugin.then(async () => {
if ("CreateObjectAsync" in cadesplugin) {
const pluginAsync: CADESPluginAsync = cadesplugin;
const oAbout = await pluginAsync.CreateObjectAsync("CAdESCOM.About");
const oVersion = await oAbout.CSPVersion();
await oVersion.toString();
}
if ("CreateObject" in cadesplugin) {
const pluginSync: CADESPluginSync = cadesplugin;
pluginSync.CreateObject("CAdESCOM.About").CSPVersion().toString();
}
});
+80
View File
@@ -0,0 +1,80 @@
declare namespace CADES_Plugin {
interface ObjectNames {
"CAPICOM.Store": CAPICOM.Store;
"CAdESCOM.CPSigner": CAdESCOM.CPSigner;
"CAdESCOM.About": CAdESCOM.About;
"CAdESCOM.SignedXML": CAdESCOM.SignedXML;
"CAdESCOM.HashedData": CAdESCOM.CPHashedData;
"CAdESCOM.CadesSignedData": CAdESCOM.CadesSignedData;
"CAdESCOM.CPAttribute": CAdESCOM.CPAttribute;
"CAdESCOM.RawSignature": CAdESCOM.RawSignature;
}
interface ObjectNamesAsync {
"CAdESCOM.Store": CAPICOM.StoreAsync;
"CAdESCOM.CPSigner": CAdESCOM.CPSignerAsync;
"CAdESCOM.About": CAdESCOM.AboutAsync;
"CAdESCOM.SignedXML": CAdESCOM.SignedXMLAsync;
"CAdESCOM.HashedData": CAdESCOM.CPHashedDataAsync;
"CAdESCOM.CadesSignedData": CAdESCOM.CadesSignedDataAsync;
"CAdESCOM.CPAttribute": CAdESCOM.CPAttributeAsync;
"CAdESCOM.RawSignature": CAdESCOM.RawSignatureAsync;
}
interface LogLevel {
readonly LOG_LEVEL_DEBUG: 4;
readonly LOG_LEVEL_INFO: 2;
readonly LOG_LEVEL_ERROR: 1;
}
interface SignedXmlUrls {
readonly XmlDsigGost3410Url: "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr34102001-gostr3411";
readonly XmlDsigGost3410UrlObsolete: "http://www.w3.org/2001/04/xmldsig-more#gostr34102001-gostr3411";
readonly XmlDsigGost3411Url: "urn:ietf:params:xml:ns:cpxmlsec:algorithms:gostr3411";
readonly XmlDsigGost3411UrlObsolete: "http://www.w3.org/2001/04/xmldsig-more#gostr3411";
}
interface EncodingType {
readonly CADESCOM_ENCODE_ANY: -1;
readonly CADESCOM_ENCODE_BASE64: 0;
readonly CADESCOM_ENCODE_BINARY: 1;
}
}
interface CADESPluginBase extends Promise<never>,
CAPICOM.StoreLocationPlugin, CAdESCOM.StoreLocationPlugin, CAPICOM.StoreNamePlugin,
CAPICOM.StoreOpenModePlugin, CAPICOM.CAPICOM_CERTIFICATE_FIND_TYPE,
CADES_Plugin.LogLevel, CAdESCOM.CADESCOM_XML_SIGNATURE_TYPE,
CADES_Plugin.SignedXmlUrls, CAdESCOM.CADESCOM_CADES_TYPE,
CADES_Plugin.EncodingType, CAPICOM.CAPICOM_CERTIFICATE_INCLUDE_OPTION,
CAPICOM.CertIntoTypePlugin, CAPICOM.KeyUsagePlugin,
CAPICOM.PropIDPlugin, CAPICOM.OIDPlugin, CAPICOM.EKUPlugin,
CAPICOM.CAPICOM_ATTRIBUTE, CAdESCOM.CADESCOM_ATTRIBUTE,
CAdESCOM.CADESCOM_CONTENT_ENCODING_TYPE, CAdESCOM.CADESCOM_DISPLAY_DATA,
CAdESCOM.CADESCOM_ENCRYPTION_ALGORITHM, CAdESCOM.CADESCOM_HASH_ALGORITHM,
CAdESCOM.CADESCOM_InstallResponseRestrictionFlags {
readonly JSModuleVersion: string;
readonly current_log_level: number;
async_spawn<T>(generatorFun: (...args: any[]) => Iterator<T>): T;
set(obj: CADESPluginBase): void;
set_log_level(level: CADES_Common.ValuesOf<CADES_Plugin.LogLevel>): void;
getLastError(exception: Error): string;
is_capilite_enabled(): boolean;
}
interface CADESPluginAsync extends CADESPluginBase {
CreateObjectAsync<T extends keyof CADES_Plugin.ObjectNamesAsync>(objName: T): Promise<CADES_Plugin.ObjectNamesAsync[T]>;
ReleasePluginObjects(): Promise<boolean>;
}
interface CADESPluginSync extends CADESPluginBase {
CreateObject<T extends keyof CADES_Plugin.ObjectNames>(objName: T): CADES_Plugin.ObjectNames[T];
}
type CADESPlugin = CADESPluginAsync | CADESPluginSync;
+83
View File
@@ -0,0 +1,83 @@
declare namespace CAPICOM {
interface EncodedData {
readonly Format: string;
Value(EncodingType?: CAPICOM_ENCODING_TYPE): string;
}
interface OID {
FriendlyName: string;
Name: CAPICOM_OID;
Value: string;
}
interface PublicKey {
readonly Algorithm: OID;
readonly EncodedKey: EncodedData;
readonly EncodedParameters: EncodedData;
readonly Length: number;
}
interface Certificate {
readonly Version: number;
readonly Thumbprint: string;
readonly SubjectName: string;
readonly SerialNumber: string;
readonly IssuerName: string;
readonly ValidFromDate: CADES_Common.VarDate;
readonly ValidToDate: CADES_Common.VarDate;
HasPrivateKey(): boolean;
GetInfo(infoType: CAPICOM_CERT_INFO_TYPE): string;
IsValid(): CertificateStatus;
Display(): void;
PublicKey(): PublicKey;
Export(EncodingType: CADES_Common.ValuesOf<CAPICOM_ENCODING_TYPE>): string;
}
interface CertificateStatus {
Result: boolean;
}
interface Certificates {
readonly Count: number;
Item(index: number): Certificate;
Find(findType: CADES_Common.ValuesOf<CAPICOM_CERTIFICATE_FIND_TYPE>, varCriteria?: any, bFindValidOnly?: boolean): Certificates;
Select(title?: string, displayString?: string, bMultiSelect?: boolean): Certificates;
}
interface Store {
readonly Certificates: Certificates;
readonly Location: CADES_Common.ValuesOf<CAPICOM_STORE_LOCATION>;
readonly Name: string;
Open(location?: CADES_Common.ValuesOf<CAPICOM_STORE_LOCATION>, name?: CADES_Common.ValuesOf<CAPICOM_STORE_NAME>, openMode?: CADES_Common.ValuesOf<CAPICOM_STORE_OPEN_MODE>): void;
Close(): void;
Delete(): boolean;
Import(encodedStore: string): void;
}
interface Signers {
readonly Count: number;
Item(index: number): Signer;
}
interface Signer {
Certificate: Certificate;
Options: CAPICOM_CERTIFICATE_INCLUDE_OPTION;
Load(fileName: string, password?: string): void;
}
}
+19
View File
@@ -0,0 +1,19 @@
declare namespace CAPICOM {
interface CertificateAsync extends CADES_Common.Async<Certificate> {
}
interface CertificatesAsync extends CADES_Common.Async<Certificates> {
}
interface StoreAsync extends CADES_Common.Async<Store> {
}
interface EncodedDataAsync extends CADES_Common.Async<EncodedData> {
}
interface OIDAsync extends CADES_Common.Async<OID> {
}
interface PublicKeyAsync extends CADES_Common.Async<PublicKey> {
}
}
+226
View File
@@ -0,0 +1,226 @@
declare namespace CAPICOM {
interface StoreLocationPlugin {
readonly CAPICOM_LOCAL_MACHINE_STORE: 1;
readonly CAPICOM_CURRENT_USER_STORE: 2;
}
interface CAPICOM_STORE_LOCATION {
readonly CAPICOM_MEMORY_STORE: 0;
readonly CAPICOM_LOCAL_MACHINE_STORE: 1;
readonly CAPICOM_CURRENT_USER_STORE: 2;
readonly CAPICOM_ACTIVE_DIRECTORY_USER_STORE: 3;
readonly CAPICOM_SMART_CARD_USER_STORE: 4;
}
interface StoreNamePlugin {
readonly CAPICOM_MY_STORE: "My";
}
interface CAPICOM_STORE_NAME extends StoreNamePlugin {
readonly CAPICOM_CA_STORE: "Ca";
readonly CAPICOM_OTHER_STORE: "AddressBook";
readonly CAPICOM_ROOT_STORE: "Root";
}
interface StoreOpenModePlugin {
readonly CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED: 2;
}
interface CAPICOM_STORE_OPEN_MODE extends StoreOpenModePlugin {
readonly CAPICOM_STORE_OPEN_READ_ONLY: 0;
readonly CAPICOM_STORE_OPEN_READ_WRITE: 1;
readonly CAPICOM_STORE_OPEN_EXISTING_ONLY: 128;
readonly CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED: 256;
}
interface CAPICOM_CERTIFICATE_FIND_TYPE {
readonly CAPICOM_CERTIFICATE_FIND_SHA1_HASH: 0;
readonly CAPICOM_CERTIFICATE_FIND_SUBJECT_NAME: 1;
readonly CAPICOM_CERTIFICATE_FIND_ISSUER_NAME: 2;
readonly CAPICOM_CERTIFICATE_FIND_ROOT_NAME: 3;
readonly CAPICOM_CERTIFICATE_FIND_TEMPLATE_NAME: 4;
readonly CAPICOM_CERTIFICATE_FIND_EXTENSION: 5;
readonly CAPICOM_CERTIFICATE_FIND_EXTENDED_PROPERTY: 6;
readonly CAPICOM_CERTIFICATE_FIND_APPLICATION_POLICY: 7;
readonly CAPICOM_CERTIFICATE_FIND_CERTIFICATE_POLICY: 8;
readonly CAPICOM_CERTIFICATE_FIND_TIME_VALID: 9;
readonly CAPICOM_CERTIFICATE_FIND_TIME_NOT_YET_VALID: 10;
readonly CAPICOM_CERTIFICATE_FIND_TIME_EXPIRED: 11;
readonly CAPICOM_CERTIFICATE_FIND_KEY_USAGE: 12;
}
interface CAPICOM_CERTIFICATE_INCLUDE_OPTION {
readonly CAPICOM_CERTIFICATE_INCLUDE_CHAIN_EXCEPT_ROOT: 0;
readonly CAPICOM_CERTIFICATE_INCLUDE_END_ENTITY_ONLY: 2;
readonly CAPICOM_CERTIFICATE_INCLUDE_WHOLE_CHAIN: 1;
}
interface CertIntoTypePlugin {
readonly CAPICOM_CERT_INFO_SUBJECT_SIMPLE_NAME: 0;
readonly CAPICOM_CERT_INFO_ISSUER_SIMPLE_NAME: 1;
}
interface CAPICOM_CERT_INFO_TYPE extends CertIntoTypePlugin {
readonly CAPICOM_CERT_INFO_SUBJECT_EMAIL_NAME: 2;
readonly CAPICOM_CERT_INFO_ISSUER_EMAIL_NAME: 3;
readonly CAPICOM_CERT_INFO_SUBJECT_UPN: 4;
readonly CAPICOM_CERT_INFO_ISSUER_UPN: 5;
readonly CAPICOM_CERT_INFO_SUBJECT_DNS_NAME: 6;
readonly CAPICOM_CERT_INFO_ISSUER_DNS_NAME: 7;
}
interface KeyUsagePlugin {
readonly CAPICOM_DIGITAL_SIGNATURE_KEY_USAGE: 128;
}
interface CAPICOM_KEY_USAGE extends KeyUsagePlugin {
readonly CAPICOM_NON_REPUDIATION_KEY_USAGE: 64;
readonly CAPICOM_KEY_ENCIPHERMENT_KEY_USAGE: 32;
readonly CAPICOM_DATA_ENCIPHERMENT_KEY_USAGE: 16;
readonly CAPICOM_KEY_AGREEMENT_KEY_USAGE: 8;
readonly CAPICOM_KEY_CERT_SIGN_KEY_USAGE: 4;
readonly CAPICOM_OFFLINE_CRL_SIGN_KEY_USAGE: 2;
readonly CAPICOM_CRL_SIGN_KEY_USAGE: 2;
readonly CAPICOM_ENCIPHER_ONLY_KEY_USAGE: 1;
readonly CAPICOM_DECIPHER_ONLY_KEY_USAGE: 32768;
}
interface PropIDPlugin {
readonly CAPICOM_PROPID_ENHKEY_USAGE: 9;
}
interface CAPICOM_PROPID extends PropIDPlugin {
readonly CAPICOM_PROPID_UNKNOWN: 0;
readonly CAPICOM_PROPID_KEY_PROV_HANDLE: 1;
readonly CAPICOM_PROPID_KEY_PROV_INFO: 2;
readonly CAPICOM_PROPID_SHA1_HASH: 3;
readonly CAPICOM_PROPID_HASH_PROP: 3;
readonly CAPICOM_PROPID_MD5_HASH: 4;
readonly CAPICOM_PROPID_KEY_CONTEXT: 5;
readonly CAPICOM_PROPID_KEY_SPEC: 6;
readonly CAPICOM_PROPID_IE30_RESERVED: 7;
readonly CAPICOM_PROPID_PUBKEY_HASH_RESERVED: 8;
readonly CAPICOM_PROPID_CTL_USAGE: 9;
readonly CAPICOM_PROPID_NEXT_UPDATE_LOCATION: 10;
readonly CAPICOM_PROPID_FRIENDLY_NAME: 11;
readonly CAPICOM_PROPID_PVK_FILE: 12;
readonly CAPICOM_PROPID_DESCRIPTION: 13;
readonly CAPICOM_PROPID_ACCESS_STATE: 14;
readonly CAPICOM_PROPID_SIGNATURE_HASH: 15;
readonly CAPICOM_PROPID_SMART_CARD_DATA: 16;
readonly CAPICOM_PROPID_EFS: 17;
readonly CAPICOM_PROPID_FORTEZZA_DATA: 18;
readonly CAPICOM_PROPID_ARCHIVED: 19;
readonly CAPICOM_PROPID_KEY_IDENTIFIER: 20;
readonly CAPICOM_PROPID_AUTO_ENROLL: 21;
readonly CAPICOM_PROPID_PUBKEY_ALG_PARA: 22;
readonly CAPICOM_PROPID_CROSS_CERT_DIST_POINTS: 23;
readonly CAPICOM_PROPID_ISSUER_PUBLIC_KEY_MD5_HASH: 24;
readonly CAPICOM_PROPID_SUBJECT_PUBLIC_KEY_MD5_HASH: 25;
readonly CAPICOM_PROPID_ENROLLMENT: 26;
readonly CAPICOM_PROPID_DATE_STAMP: 27;
readonly CAPICOM_PROPID_ISSUER_SERIAL_NUMBER_MD5_HASH: 28;
readonly CAPICOM_PROPID_SUBJECT_NAME_MD5_HASH: 29;
readonly CAPICOM_PROPID_EXTENDED_ERROR_INFO: 30;
readonly CAPICOM_PROPID_RENEWAL: 64;
readonly CAPICOM_PROPID_ARCHIVED_KEY_HASH: 65;
readonly CAPICOM_PROPID_FIRST_RESERVED: 66;
readonly CAPICOM_PROPID_LAST_RESERVED: 32767;
readonly CAPICOM_PROPID_FIRST_USER: 32768;
readonly CAPICOM_PROPID_LAST_USER: 65535;
}
interface OIDPlugin {
readonly CAPICOM_OID_OTHER: 0;
readonly CAPICOM_OID_KEY_USAGE_EXTENSION: 10;
}
interface CAPICOM_OID extends OIDPlugin {
readonly CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER_EXTENSION: 1;
readonly CAPICOM_OID_KEY_ATTRIBUTES_EXTENSION: 2;
readonly CAPICOM_OID_CERT_POLICIES_95_EXTENSION: 3;
readonly CAPICOM_OID_KEY_USAGE_RESTRICTION_EXTENSION: 4;
readonly CAPICOM_OID_LEGACY_POLICY_MAPPINGS_EXTENSION: 5;
readonly CAPICOM_OID_SUBJECT_ALT_NAME_EXTENSION: 6;
readonly CAPICOM_OID_ISSUER_ALT_NAME_EXTENSION: 7;
readonly CAPICOM_OID_BASIC_CONSTRAINTS_EXTENSION: 8;
readonly CAPICOM_OID_SUBJECT_KEY_IDENTIFIER_EXTENSION: 9;
readonly CAPICOM_OID_PRIVATEKEY_USAGE_PERIOD_EXTENSION: 11;
readonly CAPICOM_OID_SUBJECT_ALT_NAME2_EXTENSION: 12;
readonly CAPICOM_OID_ISSUER_ALT_NAME2_EXTENSION: 13;
readonly CAPICOM_OID_BASIC_CONSTRAINTS2_EXTENSION: 14;
readonly CAPICOM_OID_NAME_CONSTRAINTS_EXTENSION: 15;
readonly CAPICOM_OID_CRL_DIST_POINTS_EXTENSION: 16;
readonly CAPICOM_OID_CERT_POLICIES_EXTENSION: 17;
readonly CAPICOM_OID_POLICY_MAPPINGS_EXTENSION: 18;
readonly CAPICOM_OID_AUTHORITY_KEY_IDENTIFIER2_EXTENSION: 19;
readonly CAPICOM_OID_POLICY_CONSTRAINTS_EXTENSION: 20;
readonly CAPICOM_OID_ENHANCED_KEY_USAGE_EXTENSION: 21;
readonly CAPICOM_OID_CERTIFICATE_TEMPLATE_EXTENSION: 22;
readonly CAPICOM_OID_APPLICATION_CERT_POLICIES_EXTENSION: 23;
readonly CAPICOM_OID_APPLICATION_POLICY_MAPPINGS_EXTENSION: 24;
readonly CAPICOM_OID_APPLICATION_POLICY_CONSTRAINTS_EXTENSION: 25;
readonly CAPICOM_OID_AUTHORITY_INFO_ACCESS_EXTENSION: 26;
readonly CAPICOM_OID_SERVER_AUTH_EKU: 100;
readonly CAPICOM_OID_CLIENT_AUTH_EKU: 101;
readonly CAPICOM_OID_CODE_SIGNING_EKU: 102;
readonly CAPICOM_OID_EMAIL_PROTECTION_EKU: 103;
readonly CAPICOM_OID_IPSEC_END_SYSTEM_EKU: 104;
readonly CAPICOM_OID_IPSEC_TUNNEL_EKU: 105;
readonly CAPICOM_OID_IPSEC_USER_EKU: 106;
readonly CAPICOM_OID_TIME_STAMPING_EKU: 107;
readonly CAPICOM_OID_CTL_USAGE_SIGNING_EKU: 108;
readonly CAPICOM_OID_TIME_STAMP_SIGNING_EKU: 109;
readonly CAPICOM_OID_SERVER_GATED_CRYPTO_EKU: 110;
readonly CAPICOM_OID_ENCRYPTING_FILE_SYSTEM_EKU: 111;
readonly CAPICOM_OID_EFS_RECOVERY_EKU: 112;
readonly CAPICOM_OID_WHQL_CRYPTO_EKU: 113;
readonly CAPICOM_OID_NT5_CRYPTO_EKU: 114;
readonly CAPICOM_OID_OEM_WHQL_CRYPTO_EKU: 115;
readonly CAPICOM_OID_EMBEDED_NT_CRYPTO_EKU: 116;
readonly CAPICOM_OID_ROOT_LIST_SIGNER_EKU: 117;
readonly CAPICOM_OID_QUALIFIED_SUBORDINATION_EKU: 118;
readonly CAPICOM_OID_KEY_RECOVERY_EKU: 119;
readonly CAPICOM_OID_DIGITAL_RIGHTS_EKU: 120;
readonly CAPICOM_OID_LICENSES_EKU: 121;
readonly CAPICOM_OID_LICENSE_SERVER_EKU: 122;
readonly CAPICOM_OID_SMART_CARD_LOGON_EKU: 123;
readonly CAPICOM_OID_PKIX_POLICY_QUALIFIER_CPS: 124;
readonly CAPICOM_OID_PKIX_POLICY_QUALIFIER_USERNOTICE: 125;
}
interface EKUPlugin {
readonly CAPICOM_EKU_OTHER: 0;
readonly CAPICOM_EKU_CLIENT_AUTH: 2;
readonly CAPICOM_EKU_SMARTCARD_LOGON: 5;
}
interface CAPICOM_EKU {
readonly CAPICOM_EKU_SERVER_AUTH: 1;
readonly CAPICOM_EKU_CODE_SIGNING: 3;
readonly CAPICOM_EKU_EMAIL_PROTECTION: 4;
readonly CAPICOM_EKU_ENCRYPTING_FILE_SYSTEM: 6;
}
interface CAPICOM_ATTRIBUTE {
readonly CAPICOM_AUTHENTICATED_ATTRIBUTE_SIGNING_TIME: 0;
readonly CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_NAME: 1;
readonly CAPICOM_AUTHENTICATED_ATTRIBUTE_DOCUMENT_DESCRIPTION: 2;
}
interface CAPICOM_HASH_ALGORITHM {
readonly CAPICOM_HASH_ALGORITHM_SHA1: 0;
readonly CAPICOM_HASH_ALGORITHM_MD2: 1;
readonly CAPICOM_HASH_ALGORITHM_MD4: 2;
readonly CAPICOM_HASH_ALGORITHM_MD5: 3;
readonly CAPICOM_HASH_ALGORITHM_SHA_256: 4;
readonly CAPICOM_HASH_ALGORITHM_SHA_384: 5;
readonly CAPICOM_HASH_ALGORITHM_SHA_512: 6;
}
interface CAPICOM_ENCODING_TYPE {
readonly CAPICOM_ENCODE_ANY: -1;
readonly CAPICOM_ENCODE_BASE64: 0;
readonly CAPICOM_ENCODE_BINARY: 1;
}
}
+25
View File
@@ -0,0 +1,25 @@
declare namespace CADES_Common {
type ValuesOf<T> = T[keyof T];
type VarDate = object;
// Extracts the type if wrapped by a Promise
type Unpacked<T> = T extends Promise<infer U> ? U :
T extends CAPICOM.Certificate ? CAPICOM.CertificateAsync :
T extends CAPICOM.Certificates ? CAPICOM.CertificatesAsync :
T extends CAdESCOM.CPSigner ? CAdESCOM.CPSignerAsync :
T extends CAdESCOM.CPHashedData ? CAdESCOM.CPHashedDataAsync :
T extends CAdESCOM.Version ? CAdESCOM.VersionAsync :
T extends CAPICOM.OID ? CAPICOM.OIDAsync :
T extends CAPICOM.EncodedData ? CAPICOM.EncodedDataAsync :
T extends CAPICOM.PublicKey ? CAPICOM.PublicKeyAsync :
T;
type PromisifiedFunction<T extends Function> = // tslint:disable-line ban-types
T extends (...args: infer A) => infer U ? (...args: { [K in keyof A]: Unpacked<A[K]> }) => Promise<Unpacked<U>> :
T;
type Async<T> = {
readonly [K in keyof T]: T[K] extends Function ? PromisifiedFunction<T[K]> : // tslint:disable-line ban-types
Promise<Unpacked<T[K]>>;
};
}
+13
View File
@@ -0,0 +1,13 @@
///<reference path="./common.d.ts"/>
///<reference path="./capicom.d.ts"/>
///<reference path="./capicom_async.d.ts"/>
///<reference path="./capicom_enums.d.ts"/>
///<reference path="./cadescom.d.ts"/>
///<reference path="./cadescom_async.d.ts"/>
///<reference path="./cadescom_enums.d.ts"/>
///<reference path="./cadesplugin.d.ts"/>
declare const cadesplugin: CADESPlugin;
+25
View File
@@ -0,0 +1,25 @@
{
"extends": "../tsconfig",
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../../",
"typeRoots": [
"../../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"cadesplugin-tests.ts"
]
}
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}
+23
View File
@@ -0,0 +1,23 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"strictFunctionTypes": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts"
]
}
+3
View File
@@ -0,0 +1,3 @@
{
"extends": "dtslint/dt.json"
}