[Bug 20358] chromium's base_unittests.exe fails on RSAPrivateKeyUnitTest.*

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Oct 20 15:08:57 CDT 2009


http://bugs.winehq.org/show_bug.cgi?id=20358





--- Comment #12 from Juan Lang <juan_lang at yahoo.com>  2009-10-20 15:08:57 ---
The second failing test is an overly restrictive one on chromium's part.  The
failing test expects the following public key:

 const uint8 expected_public_key_info[] = {
    0x30, 0x81, 0x9f, 0x30, 0x0d, 0x06, 0x09, 0x2a, 
    0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 
    0x05, 0x00, 0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 
    0x89, 0x02, 0x81, 0x81, 0x00, 0xb8, 0x7f, 0x2b, 
    0x20, 0xdc, 0x7c, 0x9b, 0x0c, 0xdc, 0x51, 0x61, 
    0x99, 0x0d, 0x36, 0x0f, 0xd4, 0x66, 0x88, 0x08, 
    0x55, 0x84, 0xd5, 0x3a, 0xbf, 0x2b, 0xa4, 0x64, 
    0x85, 0x7b, 0x0c, 0x04, 0x13, 0x3f, 0x8d, 0xf4, 
    0xbc, 0x38, 0x0d, 0x49, 0xfe, 0x6b, 0xc4, 0x5a, 
    0xb0, 0x40, 0x53, 0x3a, 0xd7, 0x66, 0x09, 0x0f, 
    0x9e, 0x36, 0x74, 0x30, 0xda, 0x8a, 0x31, 0x4f, 
    0x1f, 0x14, 0x50, 0xd7, 0xc7, 0x20, 0x94, 0x17, 
    0xde, 0x4e, 0xb9, 0x57, 0x5e, 0x7e, 0x0a, 0xe5, 
    0xb2, 0x65, 0x7a, 0x89, 0x4e, 0xb6, 0x47, 0xff, 
    0x1c, 0xbd, 0xb7, 0x38, 0x13, 0xaf, 0x47, 0x85, 
    0x84, 0x32, 0x33, 0xf3, 0x17, 0x49, 0xbf, 0xe9, 
    0x96, 0xd0, 0xd6, 0x14, 0x6f, 0x13, 0x8d, 0xc5, 
    0xfc, 0x2c, 0x72, 0xba, 0xac, 0xea, 0x7e, 0x18, 
    0x53, 0x56, 0xa6, 0x83, 0xa2, 0xce, 0x93, 0x93, 
    0xe7, 0x1f, 0x0f, 0xe6, 0x0f, 0x02, 0x03, 0x01, 
    0x00, 0x01
  };

The public key we export instead is:
static const BYTE pbEncoded[] = {
0x30, 0x81, 0x9d, 0x30, 0x0b, 0x06, 0x09, 0x2a, 
0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x01, 
0x03, 0x81, 0x8d, 0x00, 0x30, 0x81, 0x89, 0x02, 
0x81, 0x81, 0x00, 0xb8, 0x7f, 0x2b, 0x20, 0xdc, 
0x7c, 0x9b, 0x0c, 0xdc, 0x51, 0x61, 0x99, 0x0d, 
0x36, 0x0f, 0xd4, 0x66, 0x88, 0x08, 0x55, 0x84, 
0xd5, 0x3a, 0xbf, 0x2b, 0xa4, 0x64, 0x85, 0x7b, 
0x0c, 0x04, 0x13, 0x3f, 0x8d, 0xf4, 0xbc, 0x38, 
0x0d, 0x49, 0xfe, 0x6b, 0xc4, 0x5a, 0xb0, 0x40, 
0x53, 0x3a, 0xd7, 0x66, 0x09, 0x0f, 0x9e, 0x36, 
0x74, 0x30, 0xda, 0x8a, 0x31, 0x4f, 0x1f, 0x14, 
0x50, 0xd7, 0xc7, 0x20, 0x94, 0x17, 0xde, 0x4e, 
0xb9, 0x57, 0x5e, 0x7e, 0x0a, 0xe5, 0xb2, 0x65, 
0x7a, 0x89, 0x4e, 0xb6, 0x47, 0xff, 0x1c, 0xbd, 
0xb7, 0x38, 0x13, 0xaf, 0x47, 0x85, 0x84, 0x32, 
0x33, 0xf3, 0x17, 0x49, 0xbf, 0xe9, 0x96, 0xd0, 
0xd6, 0x14, 0x6f, 0x13, 0x8d, 0xc5, 0xfc, 0x2c, 
0x72, 0xba, 0xac, 0xea, 0x7e, 0x18, 0x53, 0x56, 
0xa6, 0x83, 0xa2, 0xce, 0x93, 0x93, 0xe7, 0x1f, 
0x0f, 0xe6, 0x0f, 0x02, 0x03, 0x01, 0x00, 0x01
};

You can see the main difference on line 3 of the expected input:  there appear
two bytes, 0x05,0x00.  This is the NULL encoding of asn.1, and represents the
algorithm id's parameters, which are empty.  We omit them instead.  Either
encoding is legal.  (The remaining differences reflect the different lengths of
the outputs.)

Changing our implementation to include the NULL causes our
CryptHashPublicKeyInfo implementation to fail, as the tests expect the hashed
public key not to contain the NULL.  It's possible to fix this by introducing a
private function just for CryptHashPublicKeyInfo.. but I think the Chromium
test is overly restrictive, and it'd be simpler to fix it to accept either
form.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list