Commit Graph

865 Commits

Author SHA1 Message Date
Juan Lang
5d6feab0e2 crypt32: Don't keep a pointer to the lower quality chains when choosing a higher quality one, otherwise they'll get double-freed. 2007-10-19 14:21:42 +02:00
Juan Lang
cf904c2bc4 crypt32: Use GetSystemTimeAsFileTime rather than GetSystemTime/SystemTimeToFileTime. 2007-10-19 14:21:18 +02:00
Juan Lang
abc2aec88c crypt32: Use I_CertUpdateStore in registry stores. 2007-10-19 14:20:59 +02:00
Juan Lang
4d203fe902 crypt32: Pass reg store's key and memory store to CRYPT_RegReadFromReg, rather than passing a private type. 2007-10-19 14:20:51 +02:00
Juan Lang
889449630d crypt32: Use I_CertUpdateStore in file stores. 2007-10-19 14:20:44 +02:00
Juan Lang
e857f383a4 crypt32: Implement I_CertUpdateStore. 2007-10-19 14:18:20 +02:00
Juan Lang
542af8aeeb crypt32: Add tests for I_CertUpdateStore. 2007-10-19 14:18:13 +02:00
Juan Lang
b4eb9bf251 crypt32: Add I_CertUpdateStore stub. 2007-10-19 14:18:04 +02:00
Juan Lang
7b8cb034b2 crypt32: Add stubs for I_CryptFindLruEntry and I_CryptCreateLruEntry. 2007-10-19 14:17:57 +02:00
Juan Lang
63e1ac4eac crypt32: Always return an empty list on failure from CryptGetDefaultOIDDllList. 2007-10-18 13:18:33 +02:00
Juan Lang
46ead27165 crypt32: Don't abort early if encoding type is 0 for CryptRegisterOIDFunction/CryptUnregisterOIDFunction. 2007-10-18 13:18:25 +02:00
Juan Lang
0f29b48fa0 crypt32: Don't crash logging numeric function names. 2007-10-18 13:18:19 +02:00
Juan Lang
c7915134b0 crypt32: Implement CryptGetDefaultOIDFunctionAddress. 2007-10-18 13:18:13 +02:00
Juan Lang
ad514dbc20 crypt32: Add basic tests for CryptGetDefaultOIDFunctionAddress. 2007-10-18 13:18:08 +02:00
Juan Lang
6b390b4009 crypt32: Use a structure to hold function address handle. 2007-10-18 13:18:03 +02:00
Alexandre Julliard
66787e65a9 crypt32: Fix pointer casts in decode.c too. 2007-10-17 14:14:36 +02:00
Juan Lang
7a0905128d crypt32: Always set pPolicyStatus->dwError. 2007-10-17 13:40:41 +02:00
Daniel Nylander
495d354648 crypt32: Add Swedish translation. 2007-10-16 12:40:00 +02:00
Bang Jun-young
6ab44c8073 crypt32: Fix typo in CryptGetDefaultOIDFunctionAddress(). 2007-10-16 09:37:27 +02:00
Gerald Pfeifer
119e4d4955 crypt32: Fix incorrect casts in X509_CERT and friends. 2007-10-16 09:36:14 +02:00
Juan Lang
136f033158 crypt32: Implement CertVerifyCertificateChain for the Microsoft root policy. 2007-10-16 09:35:53 +02:00
Francois Gouget
3265f2d7c4 crypt32/tests: Fix compilation on systems that don't support nameless unions. 2007-10-15 14:05:08 +02:00
Juan Lang
9908fe9ac6 crypt32: Implement name constraint checking. 2007-10-11 22:23:58 +02:00
Juan Lang
c57a084882 crypt32: Implement name constraints decoding. 2007-10-11 22:23:13 +02:00
Juan Lang
30355fa674 crypt32: Don't check tag in AsnDecodeIntInternal, caller already checks it. 2007-10-11 22:23:03 +02:00
Juan Lang
436a4a283b crypt32: Allow either NULL or empty strings where one or the other is expected. 2007-10-11 22:22:55 +02:00
Juan Lang
942fb6c3eb crypt32: Implement name constraint encoding. 2007-10-11 22:22:33 +02:00
Juan Lang
ade18ff33c crypt32: Test encoding/decoding name constraints. 2007-10-11 22:22:25 +02:00
Juan Lang
a5de2742e7 crypt32: Add another test to show that time validity nesting isn't checked. 2007-10-11 22:22:17 +02:00
Juan Lang
0d544f9510 crypt32: Remove superficially different certificates. 2007-10-11 22:22:10 +02:00
Juan Lang
e6dbb9d203 crypt32: Allow imprecision of one millisecond in time decoding to fix test failures on Windows. 2007-10-11 22:22:01 +02:00
Juan Lang
57b13b37d5 crypt32: Add an extra pointer alignment to avoid possible memory corruption. 2007-10-09 17:52:46 +02:00
Marcus Meissner
7689953404 crypt32/tests: Fixed buffer overflow in encode test. 2007-10-09 17:52:46 +02:00
Juan Lang
6021eef5c9 crypt32: Print values of failing time tests. 2007-10-09 12:34:35 +02:00
Juan Lang
57240ddd05 crypt32: Remove some tests that fail inconsistently on Windows.
Reported by Steven Edwards.
2007-10-09 12:34:35 +02:00
Juan Lang
75c13b8e5d crypt32: Don't assume a maximum of 32 valid usages. 2007-10-05 10:29:37 +02:00
Juan Lang
9abd47ca7a crypt32: Add tests for CertGetValidUsages. 2007-10-05 10:29:28 +02:00
Juan Lang
f8e830a253 crypt32: Reduce valid usages count when removing a valid usage. 2007-10-05 10:29:21 +02:00
Juan Lang
b5531163a9 crypt32: Don't set ret to FALSE when it isn't checked. 2007-10-05 10:29:15 +02:00
Juan Lang
fe7208604f crypt32: Always set cNumOIDs. 2007-10-05 10:29:10 +02:00
Juan Lang
95c2eb5d69 crypt32: Don't fail if a cert is invalid, Windows doesn't either (tests to follow). 2007-10-05 10:29:04 +02:00
Juan Lang
53b7babcbb crypt32: Don't fail if buffer is NULL, just return required size. 2007-10-05 10:28:57 +02:00
Juan Lang
851e19b3f9 crypt32: Improve trace. 2007-10-05 10:28:50 +02:00
Juan Lang
daa26ebd5a crypt32: Fix a silly variable name. 2007-10-05 10:28:45 +02:00
Juan Lang
5b09287713 crypt32: Don't check decoded length against encoded length for indefinite-form sequences. 2007-10-02 12:28:20 +02:00
Juan Lang
2fb3d53347 crypt32: Correct copying a signer info's attributes. 2007-10-01 12:33:35 +02:00
Juan Lang
661525c606 crypt32: Be more strict about format of serialized store files. 2007-10-01 12:32:44 +02:00
Juan Lang
15cab33041 crypt32: Implement opening file name stores from files that contain PKCS7 messages. 2007-10-01 12:32:20 +02:00
Juan Lang
99981716b2 crypt32: Allow file stores to support more than one type of file. 2007-10-01 12:32:12 +02:00
Juan Lang
60fcce5558 crypt32: Create file store directly in CRYPT_FileNameOpenStoreW. 2007-10-01 12:32:03 +02:00
Juan Lang
2373b8bc80 crypt32: Add a helper function to create a file store from an already-initialized memory store. 2007-10-01 12:31:55 +02:00
Juan Lang
f6ebeba5a2 crypt32: Move CertSaveStore to serialize.c. 2007-09-28 11:35:03 +02:00
Juan Lang
9c55a71f8f crypt32: Use CertSaveStore to save file stores. 2007-09-28 11:31:32 +02:00
Juan Lang
6471621f5e crypt32: Implement CertSaveStore. 2007-09-28 11:31:26 +02:00
Juan Lang
bba9587f40 crypt32: Implement CRYPT_WriteSerializedStoreToFile using CRYPT_WriteSerializedStoreToStream. 2007-09-28 11:31:08 +02:00
Juan Lang
779dd45e6b crypt32: Add a function to serialize a store to an arbitrary stream. 2007-09-28 11:31:01 +02:00
Juan Lang
bc81929519 crypt32: Rename a couple of functions. 2007-09-28 11:30:48 +02:00
Juan Lang
36886f7dd1 crypt32: Add/improve some traces. 2007-09-28 11:30:40 +02:00
Juan Lang
f8ff1c3237 crypt32: Support PKCS messages wrapped in a PKCS content info in CryptQueryObject. 2007-09-27 21:03:16 +02:00
Juan Lang
f880982176 crypt32: Fix CryptQueryObject for embedded PKCS7 signatures. 2007-09-27 21:03:12 +02:00
Michael Stefaniuc
a624fb044c crypt32: Add missing parameter to a TRACE. 2007-09-27 11:08:23 +02:00
Juan Lang
8e1151ec18 crypt32: Partially implement CryptQueryObject. 2007-09-26 14:27:02 +02:00
Juan Lang
91f2a4d687 crypt32: Fix alignment for 64-bit systems. 2007-09-19 11:41:18 +02:00
Juan Lang
71b5ba0336 crypt32: Implement streamed encoding of an indefinite-length data message. 2007-09-19 11:40:44 +02:00
Juan Lang
19956d6e97 crypt32: Pass length rather than entire message to CRYPT_EncodeContentLength. 2007-09-19 11:40:38 +02:00
Juan Lang
0bd29b1243 crypt32: Use decode function's returned decoded length to advance pointer when decoding an array. 2007-09-18 11:57:56 +02:00
Juan Lang
ee28204fcf crypt32: ret is already true, don't retest it. 2007-09-18 11:57:48 +02:00
Juan Lang
9c4c856fde crypt32: Explicitly count bytes to copy in DecodeCopyBytes. 2007-09-18 11:57:41 +02:00
Juan Lang
7e475b4a77 crypt32: Test and correct decoding indefinite-length-encoded PKCS content. 2007-09-18 11:57:33 +02:00
Juan Lang
43e6b48b33 crypt32: Use correct encoded length when decoding a sequence. 2007-09-18 11:57:24 +02:00
Juan Lang
f534a67bfc crypt32: Simplify AsnDecodeSequenceItems a tiny bit. 2007-09-18 11:57:17 +02:00
Juan Lang
34aaabca83 crypt32: Allow indefinite-length encoding of sequence items. 2007-09-18 11:57:10 +02:00
Juan Lang
be91ad3604 crypt32: Simplify DecodePathLenConstraint. 2007-09-18 11:57:02 +02:00
Juan Lang
4fd90ddad3 crypt32: Allow a sequence to have an indefinite-length encoding. 2007-09-18 11:56:55 +02:00
Juan Lang
2e8ae598e1 crypt32: Set *pcbDecoded in every function. 2007-09-18 11:56:48 +02:00
Juan Lang
e03864a205 crypt32: Use internal form for all internal decoding functions. 2007-09-18 11:56:40 +02:00
Juan Lang
ce47433d94 crypt32: Get rid of encoding type argument to AsnDecodeSequence, it isn't used. 2007-09-18 11:56:24 +02:00
Juan Lang
19fd9872a6 crypt32: Get rid of encoding type from AsnDecodeSequenceItems, it's never checked. 2007-09-18 11:56:09 +02:00
Juan Lang
21246938c4 crypt32: Don't use exception handler when decoding time zone, caller already does. 2007-09-18 11:56:01 +02:00
Juan Lang
ad94982284 crypt32: Implement DecodeAltName with DecodeAltNameInternal. 2007-09-18 11:55:50 +02:00
Juan Lang
89a541a493 crypt32: Use AsnDecodeIntInternal where an internal function is called for. 2007-09-18 11:55:43 +02:00
Juan Lang
f2bff633ac crypt32: Temporarily change prototype of AsnDecodeIntInternal to the CryptDecodeObjectEx form. 2007-09-18 11:55:35 +02:00
Juan Lang
205c733b13 crypt32: Use internal decode int function a couple more places. 2007-09-18 11:55:26 +02:00
Juan Lang
8c5bd5f5ca crypt32: Introduce a space checking helper for functions that don't allocate memory and use it where appropriate. 2007-09-18 11:55:20 +02:00
Juan Lang
9d0dccf164 crypt32: Move a comment that belonged elsewhere. 2007-09-18 11:55:05 +02:00
Juan Lang
5fbca384e4 crypt32: Separate DecodeInt into an internal and external version. 2007-09-18 11:54:39 +02:00
Juan Lang
a538e95c1d crypt32: Use simpler form for internal time decoding functions. 2007-09-18 11:54:30 +02:00
Juan Lang
52be131a29 crypt32: Allow items in an array to be indefinite-length encoded. 2007-09-18 11:54:18 +02:00
Juan Lang
5d168bd4c0 crypt32: Support indefinite-length encoded arrays. 2007-09-18 11:54:10 +02:00
Juan Lang
159a369318 crypt32: Set bytes decoded in all success paths. 2007-09-18 11:54:02 +02:00
Juan Lang
7ecf5becbd crypt32: Introduce a helper function to get encoded length that allows indefinite-length encoding. 2007-09-18 11:53:54 +02:00
Juan Lang
54a51afcd7 crypt32: Remove an unneeded WINAPI. 2007-09-18 11:53:47 +02:00
Juan Lang
deb07ccb1c crypt32: Return bytes decoded from AsnDecodeArray. 2007-09-18 11:53:41 +02:00
Juan Lang
b2f02f3bf7 crypt32: Pass bytes decoded pointer to AsnDecodeArray. 2007-09-18 11:53:32 +02:00
Juan Lang
1f4bcb4a3d crypt32: Return bytes decoded when decoding an alt name entry. 2007-09-18 11:53:24 +02:00
Juan Lang
d7e8eed944 crypt32: Return bytes decoded when copying DER-encoded bytes. 2007-09-18 11:53:17 +02:00
Juan Lang
fd982c8597 crypt32: Return bytes decoded when decoding a sequence. 2007-09-18 11:53:11 +02:00
Juan Lang
1dd1c6c2c8 crypt32: Make a decode OID function that returns the number of bytes decoded. 2007-09-18 11:53:05 +02:00
Juan Lang
f3490f3ed8 crypt32: Add a decoded parameter to AsnDecodeSequence. 2007-09-18 11:52:57 +02:00
Juan Lang
731d37b049 crypt32: Use a simpler prototype for array decoding functions. 2007-09-18 11:52:50 +02:00
Juan Lang
cc2059b67c crypt32: Fix alignment on 64-bit systems. 2007-09-18 11:52:32 +02:00
Juan Lang
09447fb605 crypt32: Correct an optimization. 2007-09-18 11:52:25 +02:00
Juan Lang
e747f706b1 crypt32: Correct GET_LEN_BYTES for the indefinite-length form. 2007-09-18 11:52:18 +02:00
Juan Lang
15b19f1d16 crypt32: Add a test of an indefinite-length sequence. 2007-09-18 11:52:09 +02:00
Juan Lang
716a7405e4 crypt32: Update comments. 2007-09-18 11:52:00 +02:00
Andrew Talbot
f19086e9d3 crypt32: Fix some memory leaks. 2007-09-17 13:48:32 +02:00
Francois Gouget
5ac6e1f5c5 crypt32: We don't consider sys/types.h to be a conditional include. 2007-09-13 11:01:00 +02:00
Juan Lang
f0add11007 crypt32: Make chain tests more strict. 2007-09-12 11:33:11 +02:00
Juan Lang
a5833ac9f4 crypt32: Set subject's info status from method used to find issuer. 2007-09-12 11:33:11 +02:00
Juan Lang
54428bfb99 crypt32: Pass subject's info status when adding an issuer to a chain. 2007-09-12 11:33:11 +02:00
Juan Lang
5c8254886f crypt32: Only decode authority key ID in subject cert once when looking for issuer. 2007-09-12 11:33:11 +02:00
Juan Lang
05492ae907 crypt32: (Re)introduce helper function to get issuer certificate. 2007-09-12 11:33:11 +02:00
Rob Shearman
9ddc872a1a crypt32: Fix a compile failure on *BSD systems.
Include limits.h for the definition of PATH_MAX.
2007-09-12 11:33:10 +02:00
Francois Gouget
b7bf91f5e8 crypt32: Fix the I_Crypt*Asn1*() prototypes. Add the i_cryptasn1tls.h header and use it. 2007-09-12 11:33:10 +02:00
Juan Lang
039beff441 crypt32: Implement CertVerifyCertificateChainPolicy for the basic constraints policy. 2007-09-11 12:36:41 +02:00
Juan Lang
5f06293eb1 crypt32: Implement CertVerifyCertificateChainPolicy for the authenticode policy. 2007-09-11 12:36:34 +02:00
Juan Lang
b56f0c5b68 crypt32: Implement CertVerifyCertificateChainPolicy for the base policy. 2007-09-11 12:36:27 +02:00
Juan Lang
f23ec30534 crypt32: Add initial tests for CertVerifyCertificateChainPolicy. 2007-09-11 12:36:15 +02:00
Juan Lang
91c76955e7 crypt32: Add a stub for CertVerifyCertificateChainPolicy. 2007-09-11 12:36:10 +02:00
Juan Lang
d7115ce33c crypt32: Support CRYPT_DECODE_TO_BE_SIGNED_FLAG. 2007-09-11 12:35:57 +02:00
Juan Lang
9663f9427b crypt32: Add a root store implementation that reads trusted certificates from well-known locations on the local system. 2007-09-11 11:57:06 +02:00
Juan Lang
391f826d49 crypt32: Add a function to create a certificate chain engine potentially before the root store is created. 2007-09-11 11:50:23 +02:00
Juan Lang
5e674f3580 crypt32: Consider alternate issuers when building chains. 2007-09-10 15:50:01 +02:00
Juan Lang
1fc8c60788 crypt32: Flags weren't set, so don't bother passing them. 2007-09-10 15:49:55 +02:00
Juan Lang
a040dd22e7 crypt32: Defer checking signatures until chain is complete. 2007-09-10 15:49:50 +02:00
Juan Lang
56d4a3c392 crypt32: Don't ask CertGetIssuerCertificateFromStore to verify revocation status, it almost certainly doesn't do what we want. 2007-09-10 15:49:44 +02:00
Juan Lang
dfd2d3d9bc crypt32: Don't abort chain creation if the root signature isn't valid. 2007-09-10 15:49:38 +02:00
Juan Lang
5b02947937 crypt32: Add special case for certificates with no signature algorithm. 2007-09-10 15:49:31 +02:00
Juan Lang
d82f3f37a2 crypt32: Remove a misplaced todo_wine. 2007-09-10 15:49:24 +02:00
Juan Lang
69834b16ac crypt32: Set *ppChainContext even on error. 2007-09-10 15:49:13 +02:00
Juan Lang
31618f91dd crypt32: Test whether chain creation should fail when a root signature is invalid. 2007-09-10 15:49:07 +02:00
Juan Lang
c4e07a5bfc crypt32: Separate allocating a simple chain and checking it from building it. 2007-09-10 15:49:01 +02:00
Juan Lang
a82b36ac98 crypt32: Store world store in chain. 2007-09-10 15:48:55 +02:00
Juan Lang
818634d69a crypt32: Not finding an issuer shouldn't cause chain creation to fail. 2007-09-10 15:48:49 +02:00
Juan Lang
8698a598fc crypt32: Don't add end cert's store to world. 2007-09-10 15:48:43 +02:00
Juan Lang
e9ee8c8717 crypt32: Open world store when creating chain, not when building a simple chain. 2007-09-10 15:48:35 +02:00
Juan Lang
1a059879bf crypt32: Make a helper function to create initial candidate chain. 2007-09-10 15:48:27 +02:00
Juan Lang
192ed7353d crypt32: Test that the end cert in a chain's store isn't implicitly searched for issuers. 2007-09-10 15:48:15 +02:00
Juan Lang
6aa03fc4c3 crypt32: Add more tests for getting issuer cert from store.
Show that certificates are added to memory stores at the head rather
than the tail.
2007-09-10 15:48:10 +02:00
Juan Lang
6c9b788fb8 crypt32: Check path length constraint on a chain. 2007-08-31 19:12:38 +02:00
Juan Lang
14b0df1fef crypt32: Set error status on issued certificate, not on issuer. 2007-08-31 19:12:33 +02:00
Juan Lang
1ce46d5e4a crypt32: Check whether each signing certificate can be a CA. 2007-08-31 19:12:28 +02:00
Juan Lang
51948b0c98 crypt32: Check time of each element in chain against requested time. 2007-08-31 19:12:23 +02:00
Juan Lang
d06a24517f crypt32: Time validity nesting doesn't appear to be checked, so don't check it. 2007-08-31 19:12:18 +02:00
Juan Lang
03d76d97ec crypt32: Correct combining trust status of a chain's elements into the chain's trust status. 2007-08-31 19:12:12 +02:00
Juan Lang
c39696eb14 crypt32: Don't fail chain creation if signature doesn't match. 2007-08-31 19:12:04 +02:00
Juan Lang
1540f24e92 crypt32: Don't fail chain creation if root isn't self-signed. 2007-08-31 19:11:53 +02:00
Juan Lang
b8b787a810 crypt32: Halt chain creation when a cycle is detected. 2007-08-31 19:11:46 +02:00
Juan Lang
51a9d208ee crypt32: Implement CertDuplicateCertificateChain. 2007-08-31 19:11:41 +02:00
Juan Lang
3ef4c7e1cc crypt32: Remove unneeded WINAPI from internal function. 2007-08-31 19:11:35 +02:00