Juan Lang
0cb6148422
crypt32: Get rid of bogus check and improve traces for unexpected alt name entry types.
2007-08-03 12:28:32 +02:00
Juan Lang
db513c0cb5
crypt32: Remove bad special case, it isn't necessary since the outer content specifies the hash algorithm.
2007-08-01 11:29:31 +02:00
Juan Lang
e25b81fd9c
crypt32: Use the outer content's signature algorithm rather than the public key's embedded algorithm.
2007-08-01 11:29:18 +02:00
Juan Lang
4e0f33dada
crypt32: Support getting the inner content OID from a decoded signed message.
2007-07-31 11:16:04 +02:00
Juan Lang
014467031e
crypt32: Get rid of attribute certs from signed info, they're not supported anyway.
2007-07-31 11:15:57 +02:00
Juan Lang
a50d8dc1dd
crypt32: Add a few traces.
2007-07-31 11:15:50 +02:00
Juan Lang
f0509c49d1
crypt32: Simplify alignment calculation.
2007-07-31 11:15:41 +02:00
Juan Lang
04ef3c05f1
crypt32: Add CryptMsgControl stub.
2007-07-31 11:15:16 +02:00
Juan Lang
7e10d48c60
crypt32: Implement getting the signer cert info from a decoded signed message.
2007-07-31 11:15:08 +02:00
Juan Lang
555e85a2b2
crypt32: Implement getting signer info from a decoded signed message.
2007-07-31 11:14:46 +02:00
Juan Lang
5900ab1437
crypt32: Separate decoding PKCS signer info into internal and external versions.
2007-07-31 11:14:35 +02:00
Juan Lang
d6150a7974
crypt32: Implement getting inner content of a decoded signed message.
2007-07-31 11:14:26 +02:00
Juan Lang
2acb8a2dd2
crypt32: Test getting more parameters from a decoded signed message.
2007-07-31 11:14:18 +02:00
Juan Lang
c7f44c8ec7
crypt32: Implement message stores.
2007-07-30 12:53:42 +02:00
Juan Lang
6f2ae25441
crypt32: Only destroy a decoded message's hash if it's been created.
2007-07-30 12:53:34 +02:00
Juan Lang
d76e1899ad
crypt32: Add tests for message stores.
2007-07-30 12:53:27 +02:00
Juan Lang
115edc67e6
crypt32: Implement getting some parameters from a decoded signed message.
2007-07-30 12:53:20 +02:00
Juan Lang
9c7c9e545e
crypt32: Change type to avoid unnecessary casting.
2007-07-30 12:53:09 +02:00
Juan Lang
d187fcd172
crypt32: Test getting parameters from decoded signed messages.
2007-07-30 12:52:59 +02:00
Juan Lang
299612378a
crypt32: Store decoded signed content in message.
2007-07-30 12:52:51 +02:00
Juan Lang
211a8d324f
crypt32: Correct type of a decoded signed message.
2007-07-30 12:52:39 +02:00
Juan Lang
fd1e88ae61
crypt32: A decoded message's parameters are dependent on its type.
2007-07-30 12:52:31 +02:00
Juan Lang
d5a478edfa
crypt32: Test and implement encoding signed messages with authenticated attributes.
2007-07-26 12:35:21 +02:00
Juan Lang
b8ab462100
crypt32: Trace a few more items when decoding.
2007-07-26 12:35:12 +02:00
Juan Lang
c58cb379eb
crypt32: Test and fix encoding and decoding of attributes in PKCS signers.
2007-07-26 12:35:05 +02:00
Juan Lang
3a85fa6b15
crypt32: Partially implement decoding of signed messages.
2007-07-26 12:34:56 +02:00
Juan Lang
5674ca2e4e
crypt32: Don't check tag in CRYPT_DecodeDERArray, caller already does.
2007-07-26 12:34:47 +02:00
Juan Lang
30346ee296
crypt32: Actually skip content when skipping an item in a sequence.
2007-07-26 12:34:39 +02:00
Juan Lang
429e5b300f
crypt32: Remove redundant assignment.
2007-07-26 12:34:32 +02:00
Juan Lang
e0b13a20b5
crypt32: Add initial tests for decoding signed messages.
2007-07-26 12:34:26 +02:00
Juan Lang
5572902046
crypt32: Test getting the hash from a hash message with an invalid index.
2007-07-26 12:34:19 +02:00
Alexandre Julliard
fd51447966
crypt32: Don't use off_t for memory offsets.
2007-07-26 11:57:14 +02:00
Juan Lang
f987ca01d0
crypt32: Test and implement getting the encoded signers from an encoded signed message.
2007-07-25 13:02:23 +02:00
Marcus Meissner
60ef860f17
crypt32: Fixed wrong allocation size.
2007-07-25 13:02:02 +02:00
Juan Lang
0584964518
crypt32: Test and implement encoding signed data messages with CRLs.
2007-07-24 11:49:23 +02:00
Juan Lang
01ab14e174
crypt32: Test and implement encoding signed messages with certificates.
2007-07-24 11:49:14 +02:00
Juan Lang
8a3f4483a9
crypt32: Use set encoding function for encoding PKCS signed info.
2007-07-24 11:49:07 +02:00
Juan Lang
4f30f90c39
crypt32: Implement getting version from an encoded signed message.
2007-07-24 11:48:59 +02:00
Juan Lang
8c81a38698
crypt32: Add tests for getting an encoded signed message's parameters.
2007-07-24 11:48:52 +02:00
Juan Lang
99c475417a
crypt32: Use consistent types for storing and encoding signed encode data.
2007-07-24 11:48:44 +02:00
Juan Lang
2d359268e6
crypt32: Separate signer handles from signer info to avoid unnecessary memory allocation.
2007-07-24 11:48:36 +02:00
Juan Lang
937b27f3a3
crypt32: Implement getting outer content of a signed message.
2007-07-24 11:48:27 +02:00
Juan Lang
b80101eb65
crypt32: Partially implement encoding signed messages.
2007-07-24 11:48:19 +02:00
Juan Lang
71a5859ded
crypt32: Implement getting the hash for each signer of a signed encoded message.
2007-07-24 11:48:06 +02:00
Juan Lang
4e2b3ab9e1
crypt32: Hash and sign data when updating signed messages.
2007-07-24 11:32:19 +02:00
Juan Lang
0b0df876b2
crypt32: More parameter checking for opening signed encoded messages.
2007-07-24 11:32:10 +02:00
Juan Lang
19e63d9004
crypt32: Add tests for opening non-detached signed messages, and clarify detached open.
2007-07-24 11:32:03 +02:00
Juan Lang
d11ddebc76
crypt32: Add a partial stub for updating a signed encoded message.
2007-07-24 11:31:56 +02:00
Juan Lang
014f282b72
crypt32: Add tests for signed message encoding.
2007-07-24 11:31:46 +02:00
Juan Lang
cc4005829d
crypt32: Add tests for updating signed encoded messages.
2007-07-24 11:30:50 +02:00
Juan Lang
45652e0802
crypt32: Check for and fail on indefinite-length encoding.
2007-07-24 11:30:41 +02:00
Juan Lang
dc28f99d22
crypt32: Introduce function to encode an array of items as a set.
2007-07-24 11:30:34 +02:00
Juan Lang
223bad2312
crypt32: Add stub encoded signed message.
2007-07-24 11:30:21 +02:00
Juan Lang
725d440d3c
crypt32: Add tests for opening signed message to encode.
2007-07-24 11:30:12 +02:00
Juan Lang
52cc727348
crypt32: Move decoding hash messages to a helper function.
2007-07-23 11:53:59 +02:00
Juan Lang
74bd61203d
crypt32: Implement querying computed hash of a decoded hash message.
2007-07-20 11:41:19 +02:00
Juan Lang
22e7c2f38e
crypt32: Store hash algorithm ID along with other parameters when decoding a hash message.
2007-07-20 11:41:09 +02:00
Juan Lang
0e90cb9629
crypt32: Store (most) parameters of a decoded hash message.
2007-07-20 11:40:56 +02:00
Juan Lang
056b4f10dd
crypt32: Add a couple more parameter tests for hash messages.
2007-07-18 12:57:41 +02:00
Juan Lang
8df323f84a
crypt32: Use property list for decoded message parameters.
2007-07-18 12:57:28 +02:00
Juan Lang
4e28944934
crypt32: Implement getting content of a data message.
2007-07-18 12:57:21 +02:00
Juan Lang
95bb1be2b7
crypt32: Add a few tests for decoded message parameters.
2007-07-18 12:57:14 +02:00
Juan Lang
8099ff4bce
crypt32: Fix a bad comment.
2007-07-18 12:56:55 +02:00
Juan Lang
35abf3adf3
crypt32: Implement decoding hash messages.
2007-07-18 12:56:48 +02:00
Juan Lang
8cf82d8a0e
crypt32: Remove a redundant line.
2007-07-18 12:56:39 +02:00
Juan Lang
60c6a9e381
crypt32: Add tests for decoding a hash message.
2007-07-18 12:56:33 +02:00
Juan Lang
703a0f6fce
crypt32: Move digested data encoding to encode.c.
2007-07-18 12:56:25 +02:00
Juan Lang
76061f403b
crypt32: Implement decoding data messages (when opened in non-streaming mode).
2007-07-16 13:51:51 +02:00
Juan Lang
2cca297ba6
crypt32: Partially implement updating decode messages.
2007-07-16 13:40:11 +02:00
Juan Lang
6a07ca4442
crypt32: Store crypt provider in decode message.
2007-07-16 13:39:57 +02:00
Juan Lang
8dcd9e4279
crypt32: Fix decoding sequences with extra trailing data.
2007-07-16 13:39:35 +02:00
Juan Lang
01685bca0e
crypt32: Add test showing extra trailing bytes should be tolerated in encoded data.
2007-07-16 13:39:24 +02:00
Paul Vriens
0653b95017
crypt32/tests: Skip test if we don't have enough rights.
2007-07-13 14:43:33 +02:00
Juan Lang
d1bd2ea907
crypt32: Update comments about hash message version numbers.
2007-07-13 14:40:46 +02:00
Juan Lang
a8e135f4c6
crypt32: Introduce an updated state, and use it to remove boolean "begun".
2007-07-13 14:40:39 +02:00
Juan Lang
09c4faf159
crypt32: Change finalized from a boolean to a state and use it to simplify message updating.
2007-07-13 14:40:25 +02:00
Juan Lang
9bdb084eb6
crypt32: Relax a test, the specific error isn't so important.
2007-07-13 14:40:15 +02:00
Juan Lang
8599fd7748
crypt32: Implement retrieving a hashed message's content.
2007-07-13 14:40:04 +02:00
Juan Lang
678fb8ac14
crypt32: Introduce an algorithm id encoding function that encodes missing parameters as NULL
...
and use it to match native encoding (and simplify PKCS signer tests).
2007-07-13 14:39:40 +02:00
Juan Lang
880507d906
crypt32: Add tests for retrieving the content of a non-finalized (detached) message.
2007-07-13 14:39:09 +02:00
Juan Lang
3ffb4b1c48
crypt32: Detached hash messages don't contain the content, so don't make a copy of it.
2007-07-13 14:39:02 +02:00
Juan Lang
f83da5cc07
crypt32: Don't check if msg is NULL, tests show native doesn't either.
2007-07-13 14:38:55 +02:00
Juan Lang
a468e6f6c3
crypt32: Add a helper function to copy params.
2007-07-13 14:38:48 +02:00
Juan Lang
fef57dad46
crypt32: Copy data in hash message update.
2007-07-13 14:38:40 +02:00
Juan Lang
72b8f8325f
crypt32: Add tests for hash message encoding.
2007-07-13 14:38:32 +02:00
Juan Lang
804b9d7165
crypt32: Implement getting hash message version.
2007-07-13 14:38:24 +02:00
Juan Lang
739cc08b3b
crypt32: Partially implement updating hash messages.
2007-07-13 14:37:51 +02:00
Juan Lang
5cb26d8e58
crypt32: Test updating hash messages with NULL stream output function.
2007-07-13 14:37:42 +02:00
Juan Lang
c2f8191a64
crypt32: Simplify hash value tests.
2007-07-13 14:37:24 +02:00
Juan Lang
bb1246a51c
crypt32: Implement getting a hash message's hash value.
2007-07-13 14:37:16 +02:00
Juan Lang
1745d8a728
crypt32: Add tests for getting hash message params.
2007-07-13 14:37:09 +02:00
Juan Lang
3c15f98b77
crypt32: Add a stub hash message implementation.
2007-07-13 14:37:00 +02:00
Juan Lang
e6c339d076
crypt32: Test opening hash messages to encode with streaming.
2007-07-13 14:36:48 +02:00
Juan Lang
ad975f672b
crypt32: Add tests for updating hash messages opened to encode.
2007-07-13 14:36:40 +02:00
Juan Lang
b12072b72d
crypt32: Add open tests for hash messages.
2007-07-13 14:36:32 +02:00
Juan Lang
afaba37ed7
crypt32: Implement streamed encoding of definite-length data messages.
2007-07-13 14:36:16 +02:00
Juan Lang
48afa16386
crypt32: Make some encoding functions available outside encode.c.
2007-07-13 14:35:47 +02:00
Juan Lang
1d5a8b2f78
crypt32: Implement CryptSIPGetSignedDataMsg, CryptSIPPutSignedDataMsg,
...
CryptSIPCreateIndirectData, CryptSIPVerifyIndirectData, and
CryptSIPRemoveSignedDataMsg.
2007-07-10 14:41:24 +02:00
Juan Lang
19c3a09ba8
crypt32: Implement CryptSIPLoad.
2007-07-10 14:41:05 +02:00
Juan Lang
685d7e799a
crypt32: More decode message update tests.
2007-07-10 13:56:42 +02:00
Juan Lang
acc0bec41f
crypt32: Add some tests for updating decode messages.
2007-07-10 13:56:35 +02:00
Juan Lang
8ca755915b
crypt32: Implement getting the type of a decode message.
2007-07-10 13:56:28 +02:00
Juan Lang
656d960dd4
crypt32: Add a stub decode message implementation.
2007-07-10 13:56:20 +02:00
Juan Lang
e557d36320
crypt32: Test and fix CryptMsgGetParam for streamed messages.
2007-07-10 13:56:13 +02:00
Juan Lang
b18b05f53c
crypt32: Add tests for streamed encoding of data messages.
2007-07-10 13:56:00 +02:00
Juan Lang
aa99cf8ec0
crypt32: Test that inner content OID is ignored for data messages.
2007-07-10 13:55:53 +02:00
Juan Lang
7e65d9439c
crypt32: Make a copy of a passed-in stream info rather than assuming the pointer will live forever.
2007-07-10 13:55:44 +02:00
Juan Lang
fd05fe0d13
crypt32: Add more tests for opening a data message for encoding.
2007-07-10 13:55:31 +02:00
Juan Lang
dc63bf2de3
crypt32: Pass function pointers to CryptMsgBase_Init rather than rely on callers to initialize them.
2007-07-10 13:55:21 +02:00
Francois Gouget
a3317a5c01
Assorted spelling fixes.
2007-07-05 19:56:34 +02:00
Juan Lang
ef134dc703
crypt32: Accept ERROR_INVALID_PARAMETER in addition to ERROR_PATH_NOT_FOUND (and remove no-longer-useful checkFileStoreFailure).
2007-07-02 13:34:17 +02:00
Juan Lang
11e6717e66
crypt32: Accept ERROR_BADKEY in addition to ERROR_INVALID_HANDLE.
2007-07-02 13:34:00 +02:00
Juan Lang
f575d8569b
crypt32: Accept OSS errors as well.
2007-07-02 13:33:49 +02:00
Juan Lang
e64e66c41d
crypt32: Accept OSS errors.
2007-07-02 13:33:40 +02:00
Juan Lang
85eeccc585
crypt32: Don't fail when CryptVerifyCertificateSignatureEx is missing, use skip (and get rid of unnecessary indenting).
2007-07-02 13:32:57 +02:00
Juan Lang
68b052057b
crypt32: Use skip to avoid failures where support is missing.
2007-07-02 13:32:28 +02:00
Juan Lang
f75b86f02b
crypt32: Implement getting content for data messages opened to encode.
2007-06-29 13:27:17 +02:00
Juan Lang
263f424c3b
crypt32: Implement getting bare content for data messages opened to encode.
2007-06-29 13:27:10 +02:00
Juan Lang
d1f379340a
crypt32: Add tests for data message encoding.
2007-06-29 13:27:02 +02:00
Juan Lang
0546cf1a69
crypt32: Add a stub get param function for data messages and remove stub message from open function.
2007-06-29 13:26:53 +02:00
Juan Lang
74bf713be7
crypt32: Implement CryptMsgUpdate for data messages opened to encode.
2007-06-29 13:25:33 +02:00
Juan Lang
b6bf594aa5
crypt32: Add a finalized member to message.
2007-06-29 13:25:28 +02:00
Juan Lang
203849d75d
crypt32: Store stream info in message.
2007-06-29 13:25:11 +02:00
Juan Lang
5db6b1cc96
crypt32: Add an update function, use it to implement CryptMsgUpdate.
2007-06-29 13:25:03 +02:00
Juan Lang
d5e784bdaf
crypt32: Add a get param function, use it to implement CryptMsgGetParam.
2007-06-29 13:24:46 +02:00
Juan Lang
fa0f5bd066
crypt32: Stub CryptMsgOpenToEncode for data messages.
2007-06-29 13:24:25 +02:00
Juan Lang
e829833986
crypt32: Test CryptMsgGetParam for data messages opened to encode.
2007-06-29 13:17:47 +02:00
Juan Lang
bd05e2abe3
crypt32: Test CryptMsgUpdate for data messages opened to encode.
2007-06-29 13:17:31 +02:00
Juan Lang
a581855d26
crypt32: Test CryptMsgOpenToEncode for data messages.
2007-06-29 13:17:22 +02:00
Juan Lang
b790a09efb
crypt32: Add base message type and use it to implement CryptMsgDuplicate and CryptMsgClose.
2007-06-29 13:00:44 +02:00
Juan Lang
1c837f16ac
crypt32: Add basic parameter checking to CryptMsgOpenTo*.
2007-06-29 12:58:58 +02:00
Juan Lang
3de0e4ac48
crypt32: Add basic tests for CryptMsg functions.
2007-06-29 12:34:02 +02:00
Juan Lang
6c054f057b
crypt32: Don't return fake HCRYPTMSG from CryptMsgOpenTo*.
2007-06-29 12:33:54 +02:00
Alexandre Julliard
df3ccaba24
crypt32: Fix an uninitialized variable compiler warning.
2007-06-26 21:30:41 +02:00
Jeff Latimer
417ae04ed9
crypt32: Fix possible dereference of NULL ptr.
2007-06-25 23:21:55 +02:00
Alexandre Julliard
c2cf60fcee
crypt32: Fix incorrect usage of CharNextA.
2007-06-25 19:55:29 +02:00
Francois Gouget
fe40b2d85f
crypt32/tests: Fix compilation on systems that don't support nameless unions.
2007-06-18 13:36:48 +02:00
Paul Vriens
5fb284721d
crypt32/tests: Don't crash on Vista.
2007-06-18 12:13:16 +02:00
Francois Gouget
021c4dba17
crypt32: Add missing '\n' to ok() call.
2007-06-14 13:54:45 +02:00
Paul Vriens
74edf133e0
crypt32/tests: Vista uses a different error code.
2007-06-14 13:14:28 +02:00
Paul Vriens
c44d22466c
crypt32/tests: Skip tests if we don't have enough rights.
2007-06-14 13:14:11 +02:00
Paul Vriens
023d6fd986
crypt32/tests: Skip tests if we don't have enough rights.
2007-06-13 12:58:44 +02:00
Juan Lang
d1ac9c73f6
crypt32: Implement PKCS7_SIGNER_INFO encoding/decoding.
2007-06-13 11:56:20 +02:00
Juan Lang
e1f83a7abf
crypt32: Implement PKCS_ATTRIBUTES encoding/decoding.
2007-06-13 11:55:57 +02:00
Juan Lang
74addd636e
crypt32: Use CRYPT_EncodeEnsureSpace to allocate memory when necessary.
2007-06-13 11:55:35 +02:00
Juan Lang
97f2c658fd
crypt32: Implement PKCS_ATTRIBUTE encoding/decoding.
2007-06-13 11:54:36 +02:00
Juan Lang
bbcd95a7e1
crypt32: Separate set encoding into a separate function.
2007-06-13 11:54:17 +02:00
Juan Lang
1cd9510be0
crypt32: Implement PKCS_CONTENT_INFO encoding/decoding.
2007-06-13 11:53:47 +02:00
Juan Lang
2d00a4f0f5
crypt32: Implement CERT_AUTHORITY_KEY_ID2_INFO encoding/decoding.
2007-06-13 11:53:36 +02:00
Juan Lang
85f29f5291
crypt32: Add CryptMsg* stubs.
2007-06-11 15:01:03 +02:00
Stefan Leichter
374267e127
crypt32: Replace CRYPT_RecurseDeleteKey with RegDeleteTreeW.
2007-06-04 12:58:29 +02:00
Francois Gouget
fa48cb042c
Assorted spelling fixes.
2007-05-29 13:47:18 +02:00
Juan Lang
fa10a29930
crypt32: Remove wrong test and parameter check.
2007-05-29 11:52:31 +02:00
Juan Lang
82a31d09a1
crypt32: Statically initialize static lists and critical sections.
2007-05-25 19:36:19 +02:00
Mounir IDRASSI
e5256d9840
crypt32: Fix CertAddCertificateContextToStore when called with CERT_STORE_ADD_USE_EXISTING.
2007-05-21 12:38:56 +02:00
Juan Lang
d132d1944c
crypt32: Remove last error checks on success.
2007-05-15 15:20:02 +02:00
Juan Lang
79cd672c3d
crypt32: Use public functions to get store access state.
2007-05-15 15:19:33 +02:00
Juan Lang
4c6988e8f0
crypt32: Implement CertGetStoreProperty and CertSetStoreProperty.
2007-05-15 15:19:13 +02:00
Juan Lang
0170a41e69
crypt32: Don't set ret to TRUE when it already is.
...
Set it to FALSE when it needs to be.
2007-05-15 15:18:50 +02:00
Mounir IDRASSI
7abb204a1b
crypt32: Stub implementation of CertGetCertificateChain.
2007-05-14 14:27:18 +02:00
Mounir IDRASSI
e7c2e05f0f
crypt32: Stub implementation of CryptFindLocalizedName.
2007-05-14 14:26:57 +02:00
Mounir IDRASSI
ebe83d561b
crypt32: Fix crash in CertGetCertificateContextProperty when querying length of a hash property.
2007-05-14 14:26:32 +02:00
Francois Gouget
42fa19133a
crypt32: Add missing '\n' in FIXME() call.
2007-05-11 11:20:28 +02:00
Mounir IDRASSI
204bdb8755
crypt32: Correct the implementation of CertCreateSelfSignCertificate.
2007-05-10 12:53:37 +02:00
Juan Lang
21dce1d02d
crypt32: Implement CertEnumSystemStore.
2007-05-09 12:06:50 +02:00
Andrew Talbot
79d1d77f74
crypt32: Exclude unused headers.
2007-04-30 12:32:35 +02:00
Paul Vriens
4c90bbd6f7
crypt32/tests: Use A-version for registry functions.
2007-04-24 11:53:51 +02:00
Andrew Talbot
9f6a6427ef
crypt32: Constify some variables.
2007-04-16 12:25:19 +02:00
Andrew Talbot
fbbe0039c1
crypt32: Constify some variables.
2007-04-16 12:25:05 +02:00
Andrew Talbot
e04f6be381
crypt32: Constify some variables.
2007-04-10 11:04:57 +02:00
Francois Gouget
d9e8a0f63e
Remove unneeded checks on the GetModuleHandle() return value for cases where we are linked with the dll.
2007-03-28 12:36:13 +02:00
Paul Vriens
5faa3d0a59
crypt32/tests: No need to check return value of GetModuleHandle.
2007-03-14 22:44:14 +01:00
Paul Vriens
68fec9028c
crypt32/tests: Use GetModuleHandle and skip.
2007-03-13 21:07:58 +01:00
Juan Lang
2f7b91d7be
crypt32: Set ppSignerSig to NULL in case caller doesn't check return value.
2007-03-13 12:08:38 +01:00
Jan Zerebecki
e8956eb48b
crypt32: Add DebugInfo to critical sections.
2007-03-12 13:37:57 +01:00
Paul Vriens
cd3161eb32
crypt32/tests: Fix compilation for older gcc versions (and MinGW).
2007-01-15 14:39:03 +01:00
Paul Vriens
259c06ffc9
crypt32/tests: Cast-qual warning fixes.
2007-01-12 20:41:29 +01:00
Francois Gouget
4bc31a962a
crypt32/tests: Replace some '#if 0's with 'if (0)'s.
2007-01-08 12:08:55 +01:00
Dmitry Timoshkov
8330bd6c26
crypt32: Make some data const.
2006-12-14 20:11:24 +01:00
Marcus Meissner
f0280cbd1e
made functions and variables static in some testcases.
2006-12-11 12:18:29 +01:00
Andrew Talbot
fa8b971c2e
crypt32/tests: Cast-qual warnings fix.
2006-12-08 11:39:00 +01:00
Andrew Talbot
43605806c5
crypt32/tests: Cast-qual warnings fix.
2006-12-08 11:38:55 +01:00
Louis Lenders
532f57a243
crypt32: Add test for I_CryptInstallOssGlobal.
2006-11-27 17:21:02 +01:00
Louis Lenders
3fa930cb3b
crypt32: Better stub for I_CryptInstallOssGlobal.
2006-11-27 17:20:57 +01:00
Francois Gouget
b2656633a6
Add some documentation headers to make winapi_check happy.
2006-11-13 13:01:15 +01:00
Paul Vriens
c8da5149d0
crypt32: Input parameter checking.
2006-10-30 17:43:47 +01:00
Andrew Talbot
b6c325bfc0
crypt32: Cast-qual warnings fix.
2006-10-27 14:26:40 +02:00
Andrew Talbot
58f9b6076f
crypt32: Cast-qual warnings fix.
2006-10-25 12:14:23 +02:00
Mikołaj Zalewski
e32aa55703
resources: Change German sublanguage code to SUBLANG_NEUTRAL.
2006-10-24 11:45:12 +02:00
Andrew Talbot
c70841fb36
crypt32: Cast-qual warnings fix.
2006-10-24 11:42:47 +02:00
Byeong-Sik Jeon
e1fd734c97
Korean: Use SUBLANG_NEUTRAL in Korean resources.
2006-10-20 13:49:39 +02:00
Francois Gouget
22288de732
Fix compilation with gcc 2.95.
2006-10-19 13:35:19 +02:00
Michael Stefaniuc
15765dd953
The Data1 member of the GUID struct needs to be an unsigned int too for Win64 compatibility.
2006-10-16 10:53:04 +02:00
Alexandre Julliard
6a9222fc39
Fixed some printf warnings caused by using sizeof.
2006-10-12 14:58:25 +02:00
James Hawkins
d813d8db1b
crypt32: Make an internal function static.
2006-10-12 11:35:11 +02:00
James Hawkins
b96ac00764
crypt32: Remove redundant NULL checks before CryptMemFree (found by Smatch).
2006-10-06 15:20:27 +02:00
Paul Vriens
5c89858539
crypt32: Cast-qual warnings fix.
2006-10-06 12:53:25 +02:00
Francois Gouget
7295af0915
French rc files must be encoded in iso-8859-1, not utf-8.
2006-10-06 12:32:08 +02:00
Francois Gouget
82babbee0b
Add missing '\n's to Wine traces.
2006-10-05 17:46:48 +02:00
Paul Vriens
a9b53ef6b2
crypt32: Correct the documentation.
2006-10-05 17:46:31 +02:00
Paul Vriens
a28c40f314
crypt32: Change function declaration to overcome some cast-qual warnings in future patches.
2006-10-05 17:46:20 +02:00
Paul Vriens
94be5b0d9e
crypt32: Move some defines to the top as they will be needed in more functions.
2006-10-05 17:46:09 +02:00
Juan Lang
190f9d6546
crypt32: Don't crash when setting CRYPT_KEY_PROV_INFO with empty names.
2006-10-05 11:32:06 +02:00
Juan Lang
94a9b5a2bf
crypt32: Implement CertVerifyValidityNesting.
2006-10-04 20:56:08 +02:00
Paul Vriens
f99efa3835
crypt32: More tests for CryptSIPLoad.
2006-10-04 20:55:52 +02:00
Juan Lang
f3a1f2bf60
crypt32: Win64 printf format warning fixes.
2006-10-04 09:59:57 +02:00
Juan Lang
92afe743ef
crypt32: Forward CryptAcquireContextU to CryptAcquireContextW.
2006-10-04 09:59:51 +02:00
Marcus Meissner
e25e1a4de2
crypt32: Include wine/port.h for strcasecmp.
2006-10-03 20:33:36 +02:00
Marcus Meissner
8b1b0c71b8
crypt32/tests: Replace bad use of sprintf by 2 strcats.
2006-10-03 20:20:49 +02:00
Juan Lang
44ba993b6e
crypt32: Make it clearer where alg ids come from in CryptVerifyCertificateSignatureEx.
2006-10-03 20:20:29 +02:00
Paul Vriens
0484cb0a5a
crypt32: Remove bogus tests.
2006-10-03 15:56:36 +02:00
Juan Lang
2868977995
crypt32: Implement CryptSignAndEncodeCertificate.
2006-10-03 11:24:42 +02:00
Jonathan Ernst
5b1b4c8175
crypt32: Initial French translation.
2006-10-03 11:17:37 +02:00
Juan Lang
57e7e2b3c8
crypt32/tests: Win64 printf format warning fixes.
2006-10-03 11:16:54 +02:00
Juan Lang
353cd81c9a
crypt32/tests: Win64 printf format warning fixes.
2006-10-02 14:40:14 +02:00
Francois Gouget
222c167969
Assorted spelling fixes.
2006-09-29 16:28:30 +02:00
Michael Stefaniuc
85ce5117c5
Add a WINE_NO_LONG_INT define to many makefiles to ease the transition of DWORD/LONG/ULONG from long to int.
2006-09-29 16:08:30 +02:00
Paul Vriens
c5ae39a3df
crypt32: Added some CryptSIP stub implementations.
2006-09-29 14:41:00 +02:00
Paul Vriens
93c37404f4
crypt32: A small test to verify when to write function pointers.
2006-09-28 13:57:21 +02:00
Juan Lang
4f11b1af28
crypt32: Implement CertGetPublicKeyLength.
2006-09-28 12:23:48 +02:00
Paul Vriens
946f3ee10a
crypt32: Partly implement CryptSIPRetrieveSubjectGuid.
2006-09-27 20:10:32 +02:00
Paul Vriens
1a4bd814ca
crypt32: Another CryptSIPLoad test.
2006-09-27 18:16:18 +02:00
Juan Lang
9153d39cda
crypt32: Encode/decode authority key ids.
2006-09-27 09:40:50 +02:00
Paul Vriens
3863939168
crypt32: Add tests for CryptSIPRetrieveSubjectGuid.
2006-09-26 20:15:00 +02:00
Juan Lang
09765f7db4
crypt32: Reduce indent level of tests.
2006-09-26 11:42:03 +02:00
Juan Lang
0624ba1b2e
crypt32: Don't crash on freeing null chain engine.
2006-09-21 11:16:10 +02:00
Juan Lang
c33f0c555e
crypt32: Test exporting key acquired through CryptAcquireCertificatePrivateKey.
2006-09-21 11:16:03 +02:00
Juan Lang
c3702346bc
crypt32: Test decoding a big CRL.
2006-09-21 11:15:57 +02:00
Paul Vriens
4c32875e92
crypt32: Simplify by removing unneeded backslash.
2006-09-20 20:04:55 +02:00
Paul Vriens
1059f697f0
crypt32: Cast-qual warnings fix.
2006-09-20 11:17:52 +02:00
Paul Vriens
b078b5ddd3
crypt32: Move SIP related tests to their own file.
2006-09-20 11:17:24 +02:00
Paul Vriens
ef860912a2
crypt32: Move SIP related functions to their own file.
2006-09-20 11:16:20 +02:00
Paul Vriens
8edf507662
crypt32: Add a few functions to the spec file.
2006-09-20 11:16:08 +02:00
Paul Vriens
efb65fcac9
crypt32/tests: Some tests for CryptSIPLoad.
2006-09-14 11:12:03 +02:00
Alexandre Julliard
32ab895e46
makefiles: Generate the dependencies line to avoid some code duplication.
2006-09-14 09:38:16 +02:00
Alexandre Julliard
8e06fc4c0d
crypt32: Comment out an unreliable test.
2006-09-12 14:45:48 +02:00
Paul Vriens
869b6f7759
crypt32: Fix the adding of pwszIsFunctionName and pwszIsFunctionNameFmt2.
2006-09-10 10:17:18 +02:00
Paul Vriens
d78f7736f3
crypt32/tests: Added tests for CryptSIPAddProvider and CryptSIPRemoveProvider.
2006-09-10 10:15:50 +02:00
Paul Vriens
f7ea462916
crypt32: Implemented CryptSIPRemoveProvider.
2006-09-10 10:15:38 +02:00
Paul Vriens
b8d9201fc3
crypt32: Add documentation.
2006-09-10 10:15:20 +02:00
Paul Vriens
4388bdac70
crypt32: Bail out on registry errors and return the error (if any).
2006-09-08 15:07:38 +02:00
Paul Vriens
75604e8681
crypt32: Add documentation.
2006-09-08 15:07:30 +02:00
Paul Vriens
3891011e50
crypt32: Change the order of writing to the registry.
2006-09-08 15:07:23 +02:00
Paul Vriens
360954e46a
crypt32: Bail out on registry errors and return the error (if any).
2006-09-08 15:07:12 +02:00
Paul Vriens
8840ef3327
crypt32: Added some input validation.
2006-09-08 15:06:46 +02:00
Paul Vriens
822e6af604
crypt32: Don't crash when tracing is on and a numeric identifier is passed.
2006-09-08 11:02:10 +02:00
Paul Vriens
9592a88860
crypt32: Add some documentation.
2006-09-08 11:01:35 +02:00
James Hawkins
382d06794b
crypt32: Simplify CRYPT_AsnDecodeUnicodeNameValueInternal, getting rid of a warning.
2006-09-07 15:17:12 +02:00
James Hawkins
a9670e371e
crypt32: Simplify CRYPT_AsnDecodeNameValueInternal, getting rid of a warning.
2006-09-07 15:16:45 +02:00
Andrew Talbot
572c2c273f
crypt32/tests: Cast-qual warning fix.
2006-09-07 13:44:47 +02:00
Andrew Talbot
950b838e28
crypt32: Cast-qual warnings fix.
2006-09-07 13:44:42 +02:00
Paul Vriens
063f3e9c2f
crypt32: Set last error on registry errors.
2006-09-07 13:08:12 +02:00
Alexandre Julliard
5cf75e615a
makefiles: Only run test and documentation targets in directories that need them.
2006-08-28 13:37:44 +02:00
Alexandre Julliard
4bbcaad249
crypt32/tests: Avoid sizeof in traces.
2006-08-25 18:37:38 +02:00
Juan Lang
9958987f18
crypt32: Add CryptFormatObject stub.
2006-08-23 11:59:43 +02:00
Paul Vriens
a96ef0bac8
crypt32: Print parameters and add some documentation.
2006-08-22 12:53:49 +02:00
Juan Lang
d0ca58ba36
crypt32: Fix a misplaced parenthesis.
2006-08-22 11:59:47 +02:00
Andrew Talbot
318d92b46c
crypt32/tests: Write-strings warning fix.
2006-08-16 12:40:07 +02:00
Juan Lang
b633d6a382
crypt32: Implement CertCreateCertificateChainEngine and CertFreeCertificateChainEngine.
2006-08-15 12:57:37 +02:00
Andrew Talbot
198bdd422f
crypt32/tests: Write-strings warnings fix.
2006-08-14 11:44:34 +02:00
Juan Lang
5bc1b8ac31
crypt32: Improve undocumented functions.
...
- Test and implement I_CryptGetDefaultCryptProv (and correct its
parameter list)
- I_CryptReadTrustedPublisherDWORDValueFromRegistry always initializes
its out parameter, correct and show with a test.
2006-08-12 11:39:49 +02:00
Juan Lang
ea79639b03
crypt32/tests: Only load crypt32 once.
2006-08-11 19:26:25 +02:00
Juan Lang
15f47b227e
crypt32: Implement CryptRegisterDefaultOIDFunction and CryptUnregisterDefaultOIDFunction.
2006-08-10 11:28:14 +02:00
Juan Lang
759850feff
crypt32: Add a couple stubs, and implement the undocumented I_CryptReadTrustedPublisherDWORDValueFromRegistry.
2006-08-10 10:55:13 +02:00
Juan Lang
5349745a90
crypt32: Trace key type in CryptFindOIDInfo.
2006-08-09 11:21:24 +02:00
Juan Lang
5af2b06d47
crypt32: Support more types in CertRDNToStr.
2006-08-02 11:41:38 +02:00
Juan Lang
da3eeb4bd5
crypt32: Implement CryptHashPublicKeyInfo.
2006-07-29 11:50:34 +02:00
Andrew Talbot
2c23192704
crypt32/tests: Write-strings warnings fix.
2006-07-28 12:32:48 +02:00
Juan Lang
3882b4f66a
crypt32: Implement CryptStrToNameA/W, with tests.
2006-07-27 12:22:35 +02:00
Juan Lang
8ccbdb801e
crypt32: Implement X509_UNICODE_NAME encoding/decoding.
2006-07-27 12:10:45 +02:00
Alexandre Julliard
37bf722401
crypt32/tests: Clean up temp files.
2006-07-26 14:51:10 +02:00
Juan Lang
6e23b4a25d
crypt32: Implement file stores.
2006-07-26 10:24:53 +02:00
Juan Lang
1eefa005da
crypt32: Implement more string types for X509_NAME_VALUE.
2006-07-20 12:09:59 +02:00
Juan Lang
9bce49543b
crypt32: Correct handling of empty output buffer in CertRDNValueToStr and CertNameToStr.
2006-07-20 12:09:17 +02:00
Juan Lang
ead21189c2
crypt32: Implement X509_UNICODE_NAME_VALUE encoding/decoding.
2006-07-19 18:15:56 +02:00
Stefan Leichter
b5c98f4dd6
crypt32: Make tests loadable on NT4.
2006-07-19 09:54:22 +02:00
Andrew Talbot
a0f208755e
crypt32/tests: Write-strings warnings fix.
2006-07-19 09:39:03 +02:00
Juan Lang
dc98a727f3
crypt32: Don't return from a try block.
2006-07-19 09:38:18 +02:00
Juan Lang
8d8520975f
crypt32: Output x.500 strings from CertNameToStrA/W.
2006-07-18 11:19:05 +02:00
Juan Lang
30bf5d9adb
crypt32: Fix reading key prov info from serialized data.
2006-07-18 11:18:37 +02:00
Juan Lang
11d018471b
crypt32: Always set required encoded length in CryptEncodeObject(Ex).
2006-07-18 11:17:45 +02:00
Juan Lang
78f59dd7e9
crypt32: Correct self-signed cert creation.
...
- use correct function names for rpcrt functions
- use CryptGenRandom to create unique serial numbers
2006-07-14 13:32:39 +02:00
Juan Lang
39859971bb
crypt32: Add stubs for some stores.
2006-07-12 19:27:54 +02:00
Juan Lang
db4d361fd7
crypt32: Forward CreateFileU to CreateFileW.
2006-07-12 19:27:49 +02:00
Juan Lang
273b76570e
crypt32: Implement CryptAcquireCertificatePrivateKey.
2006-07-12 13:16:02 +02:00
Juan Lang
c0752da99f
crypt32: Check a pointer before dereferencing it (Coverity).
2006-07-11 17:37:19 +02:00
Juan Lang
4b8845ae12
crypt32: Implement key context property, with tests.
2006-07-11 12:40:22 +02:00
Andrew Talbot
ee9b18f04b
crypt32/tests: Write-strings warnings test.
2006-07-11 12:37:18 +02:00
Alexandre Julliard
77dc0d9be5
.gitignore: Added wildcards to ignore generated resource files.
2006-07-10 21:39:00 +02:00
Alexandre Julliard
0fa8baafcb
make_dlls: Recursively ignore .ok files in all tests directories.
2006-07-10 21:26:50 +02:00
Alexandre Julliard
edd100b899
make_dlls: Recursively ignore testlist.c in all tests directories.
2006-07-10 21:19:42 +02:00
Alexandre Julliard
5258e061dc
make_dlls: Ignore generated import libraries from the top-level .gitignore.
2006-07-10 20:55:58 +02:00
Alexandre Julliard
cc2b3b48e6
Take advantage of the recursive nature of .gitignore for Makefile entries.
...
Prefix other entries with '/' to make them non-recursive.
2006-07-10 20:47:54 +02:00
Juan Lang
b0dfe4048b
crypt32: Implement revocation check in CertVerifySubjectCertificateContext.
2006-07-10 11:50:13 +02:00
Dmitry Timoshkov
081563e7ec
Avoid non-portable WCHAR[] constructs.
2006-07-05 11:43:55 +02:00
Francois Gouget
e72b9f0e55
crypt32: Fix compilation with gcc 2.95.
2006-06-26 13:04:47 +02:00
Juan Lang
77ea583ab0
crypt32: Implement CertGetCRLFromStore.
...
- implement CertGetCRLFromStore, with tests
- update tests for CRL revocation functions to show name isn't checked
2006-06-22 12:29:04 +02:00
Juan Lang
e8992af0fa
crypt32: Implement some CRL verification functions.
2006-06-21 11:15:49 +02:00
Juan Lang
aeb8036486
wincrypt.h: Add more definitions and prototypes.
2006-06-21 11:15:41 +02:00
Juan Lang
6f75b5e4ad
crypt32: Rearrange functions a bit.
2006-06-20 20:37:02 +02:00
Juan Lang
cb2e21ffb4
crypt32: Encode/decode CRL issuing dist points.
2006-06-20 11:28:22 +02:00
Juan Lang
13e006a715
crypt32: Simplify CRL creation.
...
Decoding already handles signed and unsigned CRLs, so don't duplicate
that in CertCreateCRLContext.
2006-06-20 11:05:26 +02:00
Juan Lang
661aecc761
crypt32: Simplify certificate creation.
...
Decoding already handles signed and unsigned certs, so don't duplicate
that in CertCreateCertificateContext.
2006-06-20 11:05:18 +02:00
Juan Lang
1811acc2fa
crypt32: Fix decoding signed certs and CRLs.
2006-06-19 22:55:05 +02:00
Juan Lang
bc2d4a71b4
crypt32: Correct CRL tests, and fix CRL encoding/decoding accordingly.
2006-06-16 11:30:10 +02:00
Mike McCormack
4dace74bd8
crypt32: Fix a cast for Win64.
2006-06-14 12:47:05 +02:00
Alexandre Julliard
dbd473ff79
crypt32: Use unsigned int instead of size_t to avoid printf format warnings.
2006-06-13 14:14:00 +02:00
Alexandre Julliard
52d6077f8b
crypt32/tests: Don't use sizeof in ok() to avoid printf format warnings.
2006-06-13 14:02:03 +02:00
Alexandre Julliard
93fd4524e4
crypt32/tests: Use lstrlenA instead of strlen in ok() to avoid printf format warnings.
2006-06-13 13:56:39 +02:00
Alexandre Julliard
11b9d02048
crypt32: Make some variables static and/or const.
2006-06-12 13:45:11 +02:00
Andrew Talbot
63efd7f8e6
crypt32: Write-strings warning fix.
2006-06-07 15:24:05 +02:00
Juan Lang
dd4bd4ad28
crypt32: Implement X509_NAME_VALUE encoding/decoding.
2006-06-03 11:55:01 +02:00
Juan Lang
9879a47f9d
crypt32: Add name value tests.
...
Add tests for name values, and move tests for different string
encodings to there.
2006-06-02 20:42:48 +02:00
Juan Lang
a7f6a0128c
crypt32: Remove exception handling from internal decoding functions.
2006-06-02 11:46:44 +02:00
Juan Lang
6d668d9d38
crypt32: Add a couple CRL encoding tests, one that shows a problem.
2006-06-02 11:46:23 +02:00
Juan Lang
3174806f86
crypt32: Make base64 tests loadable on win9x.
2006-06-02 11:20:41 +02:00
Andrew Talbot
9a1e6aae55
crypt32/tests: Write-strings warning fix.
2006-06-01 11:08:21 +02:00
Juan Lang
23791c2510
crypt32: Implement CryptBinaryToStringA and CryptStringToBinaryA.
...
Implement CryptBinaryToStringA and CryptStringToBinaryA based on Kai
Blin's base64 encoder/decoder.
2006-05-31 11:58:40 +02:00
Andrew Talbot
1523b8f19e
crypt32: Write-strings warning fix.
2006-05-31 11:44:20 +02:00
Juan Lang
b29c2335b8
crypt32: Implement CertVerifyCRLTimeValidity and partially implement CertVerifySubjectCertificateContext.
2006-05-26 20:20:50 +02:00
Juan Lang
dc660a81ed
crypt32: Combine redundant code.
2006-05-26 20:16:07 +02:00
Alexandre Julliard
52476a1124
Fixed a couple of instances of the old FSF address that crept back in.
2006-05-26 12:08:32 +02:00
Juan Lang
f94d49dcd4
crypt32: Implement CertSerializeCRLStoreElement.
2006-05-26 11:56:45 +02:00
Juan Lang
c4f2bcf3d1
crypt32: Add support for CRLs.
2006-05-25 20:19:12 +02:00
Juan Lang
3be75cebe8
crypt32: Use public functions when finding certificates.
2006-05-25 20:17:55 +02:00
Mike McCormack
136804de7e
crypt32: Fix a integer to pointer cast.
2006-05-25 10:44:52 +02:00
Juan Lang
d2fd034b85
crypt32: Add one more test of CertAddEncodedCertificateToStore.
2006-05-25 10:37:36 +02:00
Juan Lang
9f1dd10a48
crypt32: Move cert functions that don't depend on the implementation of stores to cert.c.
2006-05-25 10:37:28 +02:00
Juan Lang
e1afe33ac7
crypt32: Test and fix a couple CertAddCertificateContextToStore corner cases.
2006-05-24 10:24:54 +02:00
Juan Lang
e48a0a3c23
crypt32: Abstract contexts.
...
- create an abstract interface for contexts, and use it for certificates
- create a simple context list, and use it for memory stores
2006-05-23 17:52:40 +02:00
Jonathan Ernst
360a3f9142
Update the address of the Free Software Foundation.
2006-05-23 14:11:13 +02:00
Juan Lang
b564ef5b03
crypt32: Move CertFindCertificateInStore and related functions to cert.c.
2006-05-20 13:58:16 +02:00
Juan Lang
d9a027952d
crypt32: Move context interface definition to common header.
2006-05-20 13:57:43 +02:00
Juan Lang
0379d421e0
crypt32: Add stubs for CertDuplicateCRLContext and CertDuplicateCTLContext.
2006-05-18 10:47:35 +02:00
Juan Lang
06bc59cd53
crypt32: Get rid of CRYPT_CreateCertificateContext, it's not needed anymore.
2006-05-17 10:41:30 +02:00
Juan Lang
f224b34e60
crypt32: Split the unwieldy encode.c into two files.
2006-05-16 20:28:39 +02:00
Juan Lang
50f9defece
crypt32: Support CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID implicit property.
2006-05-16 20:25:17 +02:00
Juan Lang
9b589c3556
crypt32: Use the caller-supplied encoding type when decoding certs.
2006-05-16 20:25:01 +02:00
Juan Lang
73e825fb37
crypt32: Add more tests for adding certs to a store.
2006-05-16 20:24:52 +02:00
Juan Lang
d0505de674
crypt32: Implement CertCompare functions, with tests.
2006-05-16 20:24:12 +02:00
Juan Lang
24157e0f74
crypt32: Test importing public keys from a certificate.
2006-05-16 12:41:04 +02:00
Juan Lang
769a52f831
crypt32: Avoid a use-after-free bug in tests.
2006-05-16 12:40:55 +02:00
Juan Lang
7e9ba76da1
crypt32: Use the HRESULT synonyms for converted Win32 error codes.
2006-05-15 11:06:04 +02:00
Juan Lang
ed66801d3a
crypt32: Partially implement CertGetIssuerCertificateFromStore.
2006-05-10 11:21:20 +02:00
Juan Lang
9adcf560ae
crypt32: Implement CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT in CryptVerifyCertificateSignatureEx.
2006-05-10 11:20:26 +02:00
Juan Lang
2a378eff3b
crypt32: Simplify OID decoding
...
Use a more direct function to decode OIDs, instead of the bizarre
wrapper.
2006-05-09 11:55:07 +02:00
Alexandre Julliard
4d574a41b5
crypt32: Fixed day/month mismatch in time encoding routines.
2006-04-13 11:45:12 +02:00
Alexandre Julliard
ee05e245a4
crypt32: Avoid crash on NULL pointer in trace.
2006-04-13 11:44:52 +02:00
Juan Lang
95859a1d6a
crypt32: Fix a typo caught by coverity.
2006-04-11 11:23:39 +02:00
Juan Lang
992a1af44b
crypt32: Implement CertCreateSelfSignCertificate, with some tests.
2006-04-06 11:38:16 +02:00