David Stutzman wrote:

> I'm building the SET of Attributes now using the following code:
> SET attributeSet = new SET();
> byte[] keyUsageByte = new byte[1];
> keyUsageByte[0] = 0x80 & 0x40; //digital signature and non repudiation

Well, of course, 0x80 & 0x40 == 0. I think you meant 0x80 | 0x40.

> When I send off the request to the RedHat CA (which you guys tell me is 
> underpinned heavily by JSS) I get "Missing or malformed KeyGen, PKCS #10 
> or CRMF request."
> 
> Using openssl asn1parse, here's the keyusage part:
>    310:d=3  hl=2 l=  10 cons: SEQUENCE
>    312:d=4  hl=2 l=   3 prim: OBJECT            :X509v3 Key Usage
>    317:d=4  hl=2 l=   3 cons: SET
>    319:d=5  hl=2 l=   1 prim: OCTET STRING
>        0001 - <SPACES/NULS>
> 
> The <SPACES/NULS> doesn't look good to me.  

I used this command to generate a CSR with a key usage extension:

   certutil -R -d DB -s CN=David.Stutzman -1 -o /tmp/CSRdavid

Then I dumped it with dumpasn1 -hh.  Here's what I got:

>     <30 82 01 76 30 81 E0 02 01 00 30 19 31 17 30 15 06 03 55 04 03 13 0E 44>
>    0  374: SEQUENCE {
>     <30 81 E0 02 01 00 30 19 31 17 30 15 06 03 55 04 03 13 0E 44 61 76 69 64>
>    4  224:   SEQUENCE {
>     <02 01 00>
>    7    1:     INTEGER 0
>     <30 19 31 17 30 15 06 03 55 04 03 13 0E 44 61 76 69 64 2E 53 74 75 74 7A>
>   10   25:     SEQUENCE {
>     <31 17 30 15 06 03 55 04 03 13 0E 44 61 76 69 64 2E 53 74 75 74 7A 6D 61>
>   12   23:       SET {
>     <30 15 06 03 55 04 03 13 0E 44 61 76 69 64 2E 53 74 75 74 7A 6D 61 6E>
>   14   21:         SEQUENCE {
>     <06 03 55 04 03>
>   16    3:           OBJECT IDENTIFIER '2 5 4 3'
>     <13 0E 44 61 76 69 64 2E 53 74 75 74 7A 6D 61 6E>
>   21   14:           PrintableString 'David.Stutzman'
>          :           }
>          :         }
>          :       }
>     <30 81 9F 30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00 03 81 8D 00 30 81>
>   37  159:     SEQUENCE {
>     <30 0D 06 09 2A 86 48 86 F7 0D 01 01 01 05 00>
>   40   13:       SEQUENCE {
>     <06 09 2A 86 48 86 F7 0D 01 01 01>
>   42    9:         OBJECT IDENTIFIER '1 2 840 113549 1 1 1'
>     <05 00>
>   53    0:         NULL
>          :         }
>     <03 81 8D 00 30 81 89 02 81 81 00 BD 57 B0 44 6B 60 63 62 53 DD 75 F3 8E>
>   55  141:       BIT STRING, encapsulates {
>     <30 81 89 02 81 81 00 BD 57 B0 44 6B 60 63 62 53 DD 75 F3 8E D3 15 96 65>
>   59  137:         SEQUENCE {
>     <02 81 81 00 BD 57 B0 44 6B 60 63 62 53 DD 75 F3 8E D3 15 96 65 F1 F8 76>
>   62  129:           INTEGER
>          :             00 BD 57 B0 44 6B 60 63 62 53 DD 75 F3 8E D3 15
>          :             96 65 F1 F8 76 33 2C C2 30 5E 1E 6F B2 C2 0E F1
>          :             3F 14 2C 21 22 5E 5D 85 8B 6D 70 C4 2B D4 7A 5B
>          :             1B 64 09 91 35 54 A4 66 7E DA E2 8B 02 2D 40 38
>          :             C5 53 F2 14 A1 92 C8 4C 5E A3 60 B8 D2 21 48 D0
>          :             47 1D 30 1A A8 00 46 F3 9A 23 FA FE 73 CF 16 B7
>          :             29 02 BF D6 CC BA 09 21 AC 82 A2 38 09 F6 20 E8
>          :             CE 1C 28 49 F5 F4 2C 11 2C 8C 6C 18 AF 1D 2C C3
>          :                     [ Another 1 bytes skipped ]
>     <02 03 01 00 01>
>  194    3:           INTEGER 65537
>          :           }
>          :         }
>          :       }
>     <A0 1E 30 1C 06 09 2A 86 48 86 F7 0D 01 09 0E 31 0F 30 0D 30 0B 06 03 55>
>  199   30:     [0] {
>     <30 1C 06 09 2A 86 48 86 F7 0D 01 09 0E 31 0F 30 0D 30 0B 06 03 55 1D 0F>
>  201   28:       SEQUENCE {
>     <06 09 2A 86 48 86 F7 0D 01 09 0E>
>  203    9:         OBJECT IDENTIFIER '1 2 840 113549 1 9 14'
>     <31 0F 30 0D 30 0B 06 03 55 1D 0F 04 04 03 02 06 C0>
>  214   15:         SET {
>     <30 0D 30 0B 06 03 55 1D 0F 04 04 03 02 06 C0>
>  216   13:           SEQUENCE {
>     <30 0B 06 03 55 1D 0F 04 04 03 02 06 C0>
>  218   11:             SEQUENCE {
>     <06 03 55 1D 0F>
>  220    3:               OBJECT IDENTIFIER '2 5 29 15'
>     <04 04 03 02 06 C0>
>  225    4:               OCTET STRING, encapsulates {
>     <03 02 06 C0>
>  227    2:                 BIT STRING 6 unused bits
>          :                   '11'B
>          :                 }
>          :               }
>          :             }
>          :           }
>          :         }
>          :       }
>          :     }
>     <30 0D 06 09 2A 86 48 86 F7 0D 01 01 05 05 00>
>  231   13:   SEQUENCE {
>     <06 09 2A 86 48 86 F7 0D 01 01 05>
>  233    9:     OBJECT IDENTIFIER '1 2 840 113549 1 1 5'
>     <05 00>
>  244    0:     NULL
>          :     }
>     <03 81 81 00 53 27 A1 18 BF 64 6E EF F4 B1 CF FF 7D 1D 6E 16 5E 83 BB DF>
>  246  129:   BIT STRING
>          :     53 27 A1 18 BF 64 6E EF F4 B1 CF FF 7D 1D 6E 16
>          :     5E 83 BB DF 27 D4 0A B1 CF C3 2D 26 7D DE 9A 83
>          :     BD 2C 07 F3 6B 0D 1C 66 D1 F9 7B CC 08 85 78 FA
>          :     5D 20 54 8F 00 15 24 BF 41 47 03 CE 34 DC 06 B0
>          :     0E 42 13 94 87 26 4D 3A 1F 45 AC 4D 9C 0F 19 D8
>          :     61 43 A3 BA 9E E6 8C 4C C6 7F 72 49 1C 25 DC F9
>          :     33 C4 3A B8 A6 25 DF 49 17 0D 34 BC F9 E1 31 19
>          :     45 D6 56 41 24 7C 15 52 DF B1 1A 5B C8 82 01 C4
>          :   }
> 
> 0 warnings, 0 errors.

And I looked at the CSR with the NSS command

    pp -t certificate-request < /tmp/CSRdavid

and got

> Certificate Request:
>     Data:
>         Version: 0 (0x0)
>         Subject: "CN=David.Stutzman"
>         Subject Public Key Info:
>             Public Key Algorithm: PKCS #1 RSA Encryption
>             RSA Public Key:
>                 Modulus:
>                     bd:57:b0:44:6b:60:63:62:53:dd:75:f3:8e:d3:15:96:
>                     65:f1:f8:76:33:2c:c2:30:5e:1e:6f:b2:c2:0e:f1:3f:
>                     14:2c:21:22:5e:5d:85:8b:6d:70:c4:2b:d4:7a:5b:1b:
>                     64:09:91:35:54:a4:66:7e:da:e2:8b:02:2d:40:38:c5:
>                     53:f2:14:a1:92:c8:4c:5e:a3:60:b8:d2:21:48:d0:47:
>                     1d:30:1a:a8:00:46:f3:9a:23:fa:fe:73:cf:16:b7:29:
>                     02:bf:d6:cc:ba:09:21:ac:82:a2:38:09:f6:20:e8:ce:
>                     1c:28:49:f5:f4:2c:11:2c:8c:6c:18:af:1d:2c:c3:97
>                 Exponent: 65537 (0x10001)
>             Attribute Type: PKCS #9 Extension Request
>             Extensions:
>                 Name: Certificate Key Usage
>                 Usages: Digital Signature
>                         Non-Repudiation
> 
>     Signature Algorithm: PKCS #1 SHA-1 With RSA Encryption
>     Signature:
>         53:27:a1:18:bf:64:6e:ef:f4:b1:cf:ff:7d:1d:6e:16:
>         5e:83:bb:df:27:d4:0a:b1:cf:c3:2d:26:7d:de:9a:83:
>         bd:2c:07:f3:6b:0d:1c:66:d1:f9:7b:cc:08:85:78:fa:
>         5d:20:54:8f:00:15:24:bf:41:47:03:ce:34:dc:06:b0:
>         0e:42:13:94:87:26:4d:3a:1f:45:ac:4d:9c:0f:19:d8:
>         61:43:a3:ba:9e:e6:8c:4c:c6:7f:72:49:1c:25:dc:f9:
>         33:c4:3a:b8:a6:25:df:49:17:0d:34:bc:f9:e1:31:19:
>         45:d6:56:41:24:7c:15:52:df:b1:1a:5b:c8:82:01:c4
>     Fingerprint (MD5):
>         82:85:CE:B6:2A:98:8C:E7:31:40:64:4E:38:CC:AF:12
>     Fingerprint (SHA1):
>         9F:3B:2C:26:9D:9F:3A:EB:E6:7A:2B:12:A9:B1:F7:00:FD:C2:ED:1F

Hope this helps.

-- 
Nelson B
_______________________________________________
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to