View Issue Details
| ID | Project | Category | View Status | Date Submitted | Last Update |
|---|---|---|---|---|---|
| 0006453 | JEDI API & WSC Library | Microsoft Crypto API | public | 2015-10-01 18:14 | 2018-12-10 07:40 |
| Reporter | Vincent | Assigned To | |||
| Priority | normal | Severity | feature | Reproducibility | always |
| Status | new | Resolution | open | ||
| Summary | 0006453: Wcrypt2.pas update | ||||
| Description | I need some CryptoAPI features for my code here : https://github.com/delphiunderground/eid-mw-sdk-delphi I would like to contribute to Wcrypt2.pas update and I uploaded a patch in attachment. | ||||
| Additional Information | I assume that the latest version of Wcrypt2.pas is here : http://sourceforge.net/p/projectjedi/website/HEAD/tree/trunk/delphi-jedi.org/www/files/api/CryptoAPI2.zip | ||||
| Tags | No tags attached. | ||||
|
2015-10-01 18:14
|
wcrypt2-update.patch (5,749 bytes)
--- Wcrypt2.pas 2000-07-20 12:42:52.000000000 +0200
+++ delphiunderground/eid-mw-sdk-delphi/wcrypt2.pas 2015-09-22 17:34:44.284678590 +0200
@@ -18,6 +18,7 @@
{ Contributor(s): }
{ Peter Tang (peter.tang@citicorp.com) }
{ Phil Shrimpton (phil@shrimpton.co.uk) }
+{ Vincent Hardy (vincent.hardy.be@gmail.com) }
{ }
{ Obtained through: }
{ }
@@ -151,6 +152,14 @@
ALD_SID_SAFERSK128 = 8;
ALG_SID_SAFERSK128 = 8;
ALG_SID_3DES_112 = 9;
+ // AES sub_ids
+ //algorithm identifier got from
+ //https://msdn.microsoft.com/en-us/library/windows/desktop/aa375549%28v=vs.85%29.aspx
+ ALG_SID_AES_128 = 14;
+ ALG_SID_AES_192 = 15;
+ ALG_SID_AES_256 = 16;
+ ALG_SID_AES = 17;
+ //---------------------------------------------------------------------------
ALG_SID_CYLINK_MEK = 12;
ALG_SID_RC5 = 13;
@@ -221,6 +230,10 @@
CALG_DES = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_DES);
CALG_3DES_112 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_3DES_112);
CALG_3DES = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_3DES);
+ CALG_AES_128 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_128);
+ CALG_AES_192 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_192);
+ CALG_AES_256 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES_256);
+ CALG_AES = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_AES);
CALG_RC2 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCK or ALG_SID_RC2);
CALG_RC4 = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAM or ALG_SID_RC4);
CALG_SEAL = (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAM or ALG_SID_SEAL);
@@ -432,6 +445,7 @@
PROV_EC_ECDSA_FULL = 16;
PROV_EC_ECNRA_FULL = 17;
PROV_SPYRUS_LYNKS = 20;
+PROV_RSA_AES = 24;
// STT defined Providers
@@ -6897,6 +6911,55 @@
pcbEncoded :PDWORD;
var ppszError :array of LPAWSTR):BOOL ; stdcall;
+//+-------------------------------------------------------------------------
+//--------------------------------------------------------------------------
+function CertGetNameStringA(pCertContext :PCCERT_CONTEXT;
+ dwType :DWORD;
+ dwFlags :DWORD;
+ pvTypePara :PVOID;
+ pszNameString :LPSTR;
+ cchNameString :DWORD):DWORD ; stdcall;
+//+-------------------------------------------------------------------------
+//--------------------------------------------------------------------------
+function CertGetNameStringW(pCertContext :PCCERT_CONTEXT;
+ dwType :DWORD;
+ dwFlags :DWORD;
+ pvTypePara :PVOID;
+ pszNameString :LPWSTR;
+ cchNameString :DWORD):DWORD ; stdcall;
+
+function CertGetNameString(pCertContext :PCCERT_CONTEXT;
+ dwType :DWORD;
+ dwFlags :DWORD;
+ pvTypePara :PVOID;
+ pszNameString :LPAWSTR;
+ cchNameString :DWORD):DWORD ; stdcall;
+//+-------------------------------------------------------------------------
+// Certificate name types
+//--------------------------------------------------------------------------
+const
+ CERT_NAME_EMAIL_TYPE = 1;
+ CERT_NAME_RDN_TYPE = 2;
+ CERT_NAME_ATTR_TYPE = 3;
+ CERT_NAME_SIMPLE_DISPLAY_TYPE = 4;
+ CERT_NAME_FRIENDLY_DISPLAY_TYPE = 5;
+ CERT_NAME_DNS_TYPE = 6;
+ CERT_NAME_URL_TYPE = 7;
+ CERT_NAME_UPN_TYPE = 8;
+
+//+-------------------------------------------------------------------------
+// Certificate name flags
+//--------------------------------------------------------------------------
+ CERT_NAME_ISSUER_FLAG = $1;
+ CERT_NAME_DISABLE_IE4_UTF8_FLAG = $00010000;
+
+
+// Following is only applicable to CERT_NAME_DNS_TYPE. When set returns
+// all names not just the first one. Returns a multi-string. Each string
+// will be null terminated. The last string will be double null terminated.
+ CERT_NAME_SEARCH_ALL_NAMES_FLAG = $2;
+
+
//+=========================================================================
// Simplified Cryptographic Message Data Structures and APIs
//==========================================================================
@@ -7833,6 +7896,13 @@
{$ELSE}
function CertStrToName; external CRYPT32 name 'CertStrToNameA';
{$ENDIF} // !UNICODE
+function CertGetNameStringW; external CRYPT32 name 'CertGetNameStringW';
+function CertGetNameStringA; external CRYPT32 name 'CertGetNameStringA';
+{$IFDEF UNICODE}
+function CertGetNameString; external CRYPT32 name 'CertGetNameStringW';
+{$ELSE}
+function CertGetNameString; external CRYPT32 name 'CertGetNameStringA';
+{$ENDIF} // !UNICODE
function CryptSignMessage; external CRYPT32 name 'CryptSignMessage';
//function CryptSignMessageWithKey; external CRYPT32 name 'CryptSignMessageWithKey';
function CryptVerifyMessageSignature; external CRYPT32 name 'CryptVerifyMessageSignature';
|
|
|
https://www.themeheart.com |
| Date Modified | Username | Field | Change |
|---|---|---|---|
| 2015-10-01 18:14 | Vincent | New Issue | |
| 2015-10-01 18:14 | Vincent | File Added: wcrypt2-update.patch | |
| 2018-12-10 07:40 | themeheart | Note Added: 0021596 | |
| 2018-12-10 07:40 | themeheart | Note Edited: 0021596 |