2008-07-25 Bo Yang <techrazy@users.sourceforge.net>
* include/wincrypt.h  (struct _CRYPT_KEY_PROV_PARAM,
        struct _CRYPT_KEY_PROV_INFO, CertGetCertificateContextProperty,
        CryptEnumKeyIdentifierProperties, CryptAcquireCertificatePrivateKey,
        CertCreateCertificateContext, CryptGetKeyIdentifierProperty,
        CertSetCertificateContextProperty, CertCompareCertificateName,
        CryptSetKeyIdentifierProperty, CertOIDToAlgId, CryptGetDefaultProviderA,
        CryptGetDefaultProviderW and many corresponding macroes): Define.
        * lib/crypt32.def  (Export the above 11 functions): Export.
        * include/winerror.h  (CRYPT_E_NOT_FOUND and other crypt related
        macroes): Define.
			
			
This commit is contained in:
		| @@ -1,3 +1,17 @@ | ||||
| 2008-07-25 Bo Yang <techrazy@users.sourceforge.net> | ||||
|  | ||||
| 	* include/wincrypt.h  (struct _CRYPT_KEY_PROV_PARAM,  | ||||
| 	struct _CRYPT_KEY_PROV_INFO, CertGetCertificateContextProperty, | ||||
| 	CryptEnumKeyIdentifierProperties, CryptAcquireCertificatePrivateKey, | ||||
| 	CertCreateCertificateContext, CryptGetKeyIdentifierProperty, | ||||
| 	CertSetCertificateContextProperty, CertCompareCertificateName,  | ||||
| 	CryptSetKeyIdentifierProperty, CertOIDToAlgId, CryptGetDefaultProviderA, | ||||
| 	CryptGetDefaultProviderW and many corresponding macroes): Define. | ||||
| 	* lib/crypt32.def  (Export the above 11 functions): Export. | ||||
| 	* include/winerror.h  (CRYPT_E_NOT_FOUND and other crypt related | ||||
| 	macroes): Define. | ||||
| 	 | ||||
|  | ||||
| 2008-07-24  Chris Sutcliffe  <ir0nh34d@users.sourceforge.net> | ||||
|  | ||||
| 	* include/winuser.h (MENUGETOBJECTINFO, MNGO_NOINTERFACE, MNGO_NOERROR, | ||||
|   | ||||
| @@ -994,8 +994,165 @@ typedef struct _CERT_POLICY_MAPPINGS_INFO { | ||||
|   PCERT_POLICY_MAPPING rgPolicyMapping; | ||||
| } CERT_POLICY_MAPPINGS_INFO,  | ||||
|  *PCERT_POLICY_MAPPINGS_INFO; | ||||
|  | ||||
| #endif /* (WINVER >= 0x0501) */ /* Windows Server 2003, Windows XP */ | ||||
|  | ||||
| //http://msdn.microsoft.com/en-us/library/aa922935.aspx | ||||
| //Some Crypto Key Provider Information structures. | ||||
| typedef struct _CRYPT_KEY_PROV_PARAM { | ||||
|     DWORD           dwParam; | ||||
|     BYTE            *pbData; | ||||
|     DWORD           cbData; | ||||
|     DWORD           dwFlags; | ||||
| } CRYPT_KEY_PROV_PARAM, *PCRYPT_KEY_PROV_PARAM; | ||||
|  | ||||
| //http://msdn.microsoft.com/en-us/library/aa381420(VS.85).aspx | ||||
| typedef struct _CRYPT_KEY_PROV_INFO { | ||||
|     LPWSTR                  pwszContainerName; | ||||
|     LPWSTR                  pwszProvName; | ||||
|     DWORD                   dwProvType; | ||||
|     DWORD                   dwFlags; | ||||
|     DWORD                   cProvParam; | ||||
|     PCRYPT_KEY_PROV_PARAM   rgProvParam; | ||||
|     DWORD                   dwKeySpec; | ||||
| } CRYPT_KEY_PROV_INFO, *PCRYPT_KEY_PROV_INFO; | ||||
|  | ||||
| #define CERT_SET_KEY_PROV_HANDLE_PROP_ID    0x00000001 | ||||
| #define CERT_SET_KEY_CONTEXT_PROP_ID        0x00000001 | ||||
|  | ||||
| #define CRYPT_KEYID_DELETE_FLAG         0x00000010 | ||||
| #define CRYPT_KEYID_SET_NEW_FLAG        0x00002000 | ||||
|  | ||||
| //certificate crl ctl IDs | ||||
| #define CERT_KEY_PROV_HANDLE_PROP_ID        1 | ||||
| #define CERT_KEY_PROV_INFO_PROP_ID          2 | ||||
| #define CERT_SHA1_HASH_PROP_ID              3 | ||||
| #define CERT_MD5_HASH_PROP_ID               4 | ||||
| #define CERT_HASH_PROP_ID                   CERT_SHA1_HASH_PROP_ID | ||||
| #define CERT_KEY_CONTEXT_PROP_ID            5 | ||||
| #define CERT_KEY_SPEC_PROP_ID               6 | ||||
| #define CERT_IE30_RESERVED_PROP_ID          7 | ||||
| #define CERT_PUBKEY_HASH_RESERVED_PROP_ID   8 | ||||
| #define CERT_ENHKEY_USAGE_PROP_ID           9 | ||||
| #define CERT_CTL_USAGE_PROP_ID              CERT_ENHKEY_USAGE_PROP_ID | ||||
| #define CERT_NEXT_UPDATE_LOCATION_PROP_ID   10 | ||||
| #define CERT_FRIENDLY_NAME_PROP_ID          11 | ||||
| #define CERT_PVK_FILE_PROP_ID               12 | ||||
| #define CERT_DESCRIPTION_PROP_ID            13 | ||||
| #define CERT_ACCESS_STATE_PROP_ID           14 | ||||
| #define CERT_SIGNATURE_HASH_PROP_ID         15 | ||||
| #define CERT_SMART_CARD_DATA_PROP_ID        16 | ||||
| #define CERT_EFS_PROP_ID                    17 | ||||
| #define CERT_FORTEZZA_DATA_PROP_ID          18 | ||||
| #define CERT_ARCHIVED_PROP_ID               19 | ||||
| #define CERT_KEY_IDENTIFIER_PROP_ID         20 | ||||
| #define CERT_AUTO_ENROLL_PROP_ID            21 | ||||
| #define CERT_PUBKEY_ALG_PARA_PROP_ID        22 | ||||
| #define CERT_CROSS_CERT_DIST_POINTS_PROP_ID 23 | ||||
| #define CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID     24 | ||||
| #define CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID    25 | ||||
| #define CERT_ENROLLMENT_PROP_ID             26 | ||||
| #define CERT_DATE_STAMP_PROP_ID             27 | ||||
| #define CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID  28 | ||||
| #define CERT_SUBJECT_NAME_MD5_HASH_PROP_ID  29 | ||||
| #define CERT_EXTENDED_ERROR_INFO_PROP_ID    30 | ||||
|  | ||||
| //Certificate name type | ||||
| #define CERT_NAME_EMAIL_TYPE            1 | ||||
| #define CERT_NAME_RDN_TYPE              2 | ||||
| #define CERT_NAME_ATTR_TYPE             3 | ||||
| #define CERT_NAME_SIMPLE_DISPLAY_TYPE   4 | ||||
| #define CERT_NAME_FRIENDLY_DISPLAY_TYPE 5 | ||||
| #define CERT_NAME_DNS_TYPE              6 | ||||
| #define CERT_NAME_URL_TYPE              7 | ||||
| #define CERT_NAME_UPN_TYPE              8 | ||||
|  | ||||
| //certificate/CRL, encoded, context or element disposition values. | ||||
| #define CERT_STORE_ADD_NEW                                  1 | ||||
| #define CERT_STORE_ADD_USE_EXISTING                         2 | ||||
| #define CERT_STORE_ADD_REPLACE_EXISTING                     3 | ||||
| #define CERT_STORE_ADD_ALWAYS                               4 | ||||
| #define CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES  5 | ||||
| #define CERT_STORE_ADD_NEWER                                6 | ||||
| #define CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES             7 | ||||
|  | ||||
| #define CRYPT_ACQUIRE_CACHE_FLAG                0x00000001 | ||||
| #define CRYPT_ACQUIRE_USE_PROV_INFO_FLAG        0x00000002 | ||||
| #define CRYPT_ACQUIRE_COMPARE_KEY_FLAG          0x00000004 | ||||
| #define CRYPT_ACQUIRE_SILENT_FLAG               0x00000040 | ||||
|  | ||||
| // dwFlags definitions for CryptAcquireContext | ||||
| #define CRYPT_VERIFYCONTEXT     0xF0000000 | ||||
| #define CRYPT_NEWKEYSET         0x00000008 | ||||
| #define CRYPT_DELETEKEYSET      0x00000010 | ||||
| #define CRYPT_MACHINE_KEYSET    0x00000020 | ||||
| #define CRYPT_SILENT            0x00000040 | ||||
|  | ||||
| // dwFlag definitions for CryptGenKey | ||||
| #define CRYPT_EXPORTABLE        0x00000001 | ||||
| #define CRYPT_USER_PROTECTED    0x00000002 | ||||
| #define CRYPT_CREATE_SALT       0x00000004 | ||||
| #define CRYPT_UPDATE_KEY        0x00000008 | ||||
| #define CRYPT_NO_SALT           0x00000010 | ||||
| #define CRYPT_PREGEN            0x00000040 | ||||
| #define CRYPT_RECIPIENT         0x00000010 | ||||
| #define CRYPT_INITIATOR         0x00000040 | ||||
| #define CRYPT_ONLINE            0x00000080 | ||||
| #define CRYPT_SF                0x00000100 | ||||
| #define CRYPT_CREATE_IV         0x00000200 | ||||
| #define CRYPT_KEK               0x00000400 | ||||
| #define CRYPT_DATA_KEY          0x00000800 | ||||
| #define CRYPT_VOLATILE          0x00001000 | ||||
| #define CRYPT_SGCKEY            0x00002000 | ||||
| #define CRYPT_ARCHIVABLE        0x00004000 | ||||
|  | ||||
| #define RSA1024BIT_KEY          0x04000000 | ||||
|  | ||||
| // dwFlags definitions for CryptDeriveKey | ||||
| #define CRYPT_SERVER            0x00000400 | ||||
|  | ||||
| #define KEY_LENGTH_MASK         0xFFFF0000 | ||||
|  | ||||
| // dwFlag definitions for CryptExportKey | ||||
| #define CRYPT_Y_ONLY            0x00000001 | ||||
| #define CRYPT_SSL2_FALLBACK     0x00000002 | ||||
| #define CRYPT_DESTROYKEY        0x00000004 | ||||
| #define CRYPT_OAEP              0x00000040  // used with RSA encryptions/decryptions | ||||
|                                             // CryptExportKey, CryptImportKey, | ||||
|                                             // CryptEncrypt and CryptDecrypt | ||||
|  | ||||
| #define CRYPT_BLOB_VER3         0x00000080  // export version 3 of a blob type | ||||
| #define CRYPT_IPSEC_HMAC_KEY    0x00000100  // CryptImportKey only | ||||
|  | ||||
| // dwFlags definitions for CryptDecrypt | ||||
| //  See also CRYPT_OAEP, above. | ||||
| //  Note, the following flag is not supported for CryptEncrypt | ||||
| #define CRYPT_DECRYPT_RSA_NO_PADDING_CHECK      0x00000020 | ||||
|  | ||||
| // dwFlags definitions for CryptCreateHash | ||||
| #define CRYPT_SECRETDIGEST      0x00000001 | ||||
|  | ||||
| // dwFlags definitions for CryptHashData | ||||
| #define CRYPT_OWF_REPL_LM_HASH  0x00000001  // this is only for the OWF replacement CSP | ||||
|  | ||||
| // dwFlags definitions for CryptHashSessionKey | ||||
| #define CRYPT_LITTLE_ENDIAN     0x00000001 | ||||
|  | ||||
| // dwFlags definitions for CryptSignHash and CryptVerifySignature | ||||
| #define CRYPT_NOHASHOID         0x00000001 | ||||
| #define CRYPT_TYPE2_FORMAT      0x00000002 | ||||
| #define CRYPT_X931_FORMAT       0x00000004 | ||||
|  | ||||
| // dwFlag definitions for CryptSetProviderEx and CryptGetDefaultProvider | ||||
| #define CRYPT_MACHINE_DEFAULT   0x00000001 | ||||
| #define CRYPT_USER_DEFAULT      0x00000002 | ||||
| #define CRYPT_DELETE_DEFAULT    0x00000004 | ||||
|  | ||||
| //algorithm | ||||
| #define CALG_SSL3_SHAMD5        (ALG_CLASS_HASH | ALG_TYPE_ANY | ALG_SID_SSL3SHAMD5) | ||||
|  | ||||
| //End of crypto key provider information structures | ||||
|  | ||||
| BOOL WINAPI CertCloseStore(HCERTSTORE,DWORD); | ||||
| BOOL WINAPI CertGetCertificateChain(HCERTCHAINENGINE,PCCERT_CONTEXT,LPFILETIME,HCERTSTORE,PCERT_CHAIN_PARA,DWORD,LPVOID,PCCERT_CHAIN_CONTEXT*); | ||||
| BOOL WINAPI CertVerifyCertificateChainPolicy(LPCSTR,PCCERT_CHAIN_CONTEXT,PCERT_CHAIN_POLICY_PARA,PCERT_CHAIN_POLICY_STATUS); | ||||
| @@ -1132,6 +1289,29 @@ BOOL WINAPI CryptUnprotectData (DATA_BLOB*, LPWSTR*, DATA_BLOB*, PVOID, CRYPTPRO | ||||
| /* from http://msdn2.microsoft.com/en-us/library/aa302402.aspx: */ | ||||
| #define CRYPTPROTECT_UI_FORBIDDEN 0x1 | ||||
| #define CRYPTPROTECT_LOCAL_MACHINE 0x4 | ||||
|  | ||||
| //For Mozilla trunk | ||||
| typedef BOOL (WINAPI *PFN_CRYPT_ENUM_KEYID_PROP)(const CRYPT_HASH_BLOB *, DWORD, void *, void *, DWORD,DWORD,void **,DWORD); | ||||
|  | ||||
| BOOL WINAPI CertGetCertificateContextProperty (PCCERT_CONTEXT, DWORD, void *, DWORD *); | ||||
| BOOL WINAPI CryptEnumKeyIdentifierProperties (const CRYPT_HASH_BLOB *, DWORD, DWORD, LPCWSTR, void *, void *, PFN_CRYPT_ENUM_KEYID_PROP); | ||||
| BOOL WINAPI CryptAcquireCertificatePrivateKey(PCCERT_CONTEXT, DWORD, void *, HCRYPTPROV *, DWORD *, BOOL *); | ||||
| PCCERT_CONTEXT WINAPI CertCreateCertificateContext (DWORD, const BYTE *, DWORD); | ||||
| BOOL WINAPI CryptGetKeyIdentifierProperty( const CRYPT_HASH_BLOB *, DWORD, DWORD, LPCWSTR, void *, void *, DWORD *); | ||||
| BOOL WINAPI CertSetCertificateContextProperty( PCCERT_CONTEXT, DWORD, DWORD, void *); | ||||
| BOOL WINAPI CertCompareCertificateName( DWORD, PCERT_NAME_BLOB, PCERT_NAME_BLOB); | ||||
| BOOL WINAPI CryptSetKeyIdentifierProperty (const CRYPT_HASH_BLOB *, DWORD, DWORD, LPCWSTR, void *, void *); | ||||
| DWORD WINAPI CertOIDToAlgId( LPCSTR ); | ||||
| BOOL WINAPI CryptGetDefaultProviderA(DWORD,DWORD,DWORD,LPSTR,DWORD); | ||||
| BOOL WINAPI CryptGetDefaultProviderW(DWORD,DWORD,DWORD,LPSTR,DWORD); | ||||
|  | ||||
| #ifdef UNICODE | ||||
| #define CryptGetDefaultProvider  CryptGetDefaultProviderW | ||||
| #else | ||||
| #define CryptGetDefaultProvider  CryptGetDefaultProviderA | ||||
| #endif // !UNICODE | ||||
|  | ||||
|   | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|   | ||||
| @@ -4,6 +4,8 @@ | ||||
| #pragma GCC system_header | ||||
| #endif | ||||
|  | ||||
| #define _HRESULT_TYPEDEF_(_sc) ((HRESULT)_sc) | ||||
|  | ||||
| #define ERROR_SUCCESS 0L | ||||
| #define NO_ERROR 0L | ||||
| #define ERROR_INVALID_FUNCTION 1L | ||||
| @@ -1838,6 +1840,23 @@ | ||||
| #define ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE 14079L | ||||
| #define ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME 14080L | ||||
|  | ||||
| //Crypto realted errors | ||||
| #define CRYPT_E_NOT_FOUND                _HRESULT_TYPEDEF_(0x80092004L) | ||||
| #define CRYPT_E_EXISTS                   _HRESULT_TYPEDEF_(0x80092005L) | ||||
| #define CRYPT_E_NO_PROVIDER              _HRESULT_TYPEDEF_(0x80092006L) | ||||
| #define CRYPT_E_SELF_SIGNED              _HRESULT_TYPEDEF_(0x80092007L) | ||||
| #define CRYPT_E_DELETED_PREV             _HRESULT_TYPEDEF_(0x80092008L) | ||||
| #define CRYPT_E_NO_MATCH                 _HRESULT_TYPEDEF_(0x80092009L) | ||||
| #define CRYPT_E_UNEXPECTED_MSG_TYPE      _HRESULT_TYPEDEF_(0x8009200AL) | ||||
| #define CRYPT_E_NO_KEY_PROPERTY          _HRESULT_TYPEDEF_(0x8009200BL) | ||||
| #define CRYPT_E_NO_DECRYPT_CERT          _HRESULT_TYPEDEF_(0x8009200CL) | ||||
| #define CRYPT_E_BAD_MSG                  _HRESULT_TYPEDEF_(0x8009200DL) | ||||
| #define CRYPT_E_NO_SIGNER                _HRESULT_TYPEDEF_(0x8009200EL) | ||||
| #define CRYPT_E_PENDING_CLOSE            _HRESULT_TYPEDEF_(0x8009200FL) | ||||
| #define CRYPT_E_REVOKED                  _HRESULT_TYPEDEF_(0x80092010L) | ||||
| #define CRYPT_E_NO_REVOCATION_DLL        _HRESULT_TYPEDEF_(0x80092011L) | ||||
| #define CRYPT_E_NO_REVOCATION_CHECK      _HRESULT_TYPEDEF_(0x80092012L) | ||||
|  | ||||
| #define SEVERITY_SUCCESS 0 | ||||
| #define SEVERITY_ERROR 1 | ||||
| #define FACILITY_WINDOWS 8 | ||||
|   | ||||
| @@ -34,3 +34,14 @@ CertDeleteCertificateFromStore@4 | ||||
| PFXIsPFXBlob@4 | ||||
| PFXVerifyPassword@12 | ||||
| PFXImportCertStore@12 | ||||
| CertGetCertificateContextProperty@16 | ||||
| CryptEnumKeyIdentifierProperties@28 | ||||
| CryptAcquireCertificatePrivateKey@24 | ||||
| CertCreateCertificateContext@12 | ||||
| CryptGetKeyIdentifierProperty@28 | ||||
| CertSetCertificateContextProperty@16 | ||||
| CertCompareCertificateName@12 | ||||
| CryptSetKeyIdentifierProperty@24 | ||||
| CryptEncodeObject@20 | ||||
| CryptGetDefaultProviderA@20 | ||||
| CryptGetDefaultProviderW@20 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user