> >> That does seem strange.  We have a [2] explicitly encoding a [0] which
> >> is an implicit bit string with no unused bits, apparently encapsulating
> >> another bit string of length zero.  :-/
> > I have now modified our decoder to correctly recognize POPOPrivKey
> > encoded as thisMessage, i.e. [0]. That BitString contains "03 00". Is
> > it expected to be that way ?
>
> I think it is not expected to be that way.  As I wrote before:
>
> >> I'd guess that the attempt to wrap the private key with the CA's public
> >> key failed, resulting in a zero length value being encoded.
>
> Is there any way I can reproduce what you're seeing?
> I would probably require me to be able to access your CA server,
> and perhaps also to trust your root cert for the test.

There is no CA server involved at this point. All I am doing is
supplying a Base-64 encoded certificate to encrypt the private key
with. Here is the value:

MIIDEDCCAfigAwIBAgIBATANBgkqhkiG9w0BAQUFADAoMQswCQYDVQQGEwJVUzEMMAoGA1UEChMD
NTMxMQswCQYDVQQDEwJjYTAeFw0wNzExMTMxNTAxMjJaFw0xMDExMTMxNTAxMjJaMCgxCzAJBgNV
BAYTAlVTMQwwCgYDVQQKEwM1MzExCzAJBgNVBAMTAmNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
MIIBCgKCAQEAsRCC0uVqV7PWAAlVg0aBKIKExrn
+hSyq531H144D6TkIN5EHJ5sfgeF3o6VMqUsX
usfQNofIPpz6bUhSFCEIdbd5zeOdn5AqEVstY18uzE6vxWidmxe6qkMrPi51HW7oTPOreC5auTGC
Jfnjk8hBnXtIx8Dt2vRgHH1laKYyeRLczN7tkcVc29D7FSxPW
+vrU6IhDnKbfKoh5uzTJ7TrDY0Q
y6+5qfohd5k1gy4CQ7W/MRq6tsOks/x4+4iEJEhN/
RtsziW4qfhv81GOMyed8njgIXBGHmLGVTDI
umWCfpMerHA
+UIz5a6SSeRV79lID7mYQMhrXDDNzJQ6zk1BtmQIDAQABo0UwQzASBgNVHRMBAf8E
CDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjAdBgNVHQ4EFgQUUsoh2TFbcOWauSNO6GFBSE/
9MEcw
DQYJKoZIhvcNAQEFBQADggEBAKH4M6J+EueLrQYUdtdXn29XSi
+tEB0e7eT5zeKuWEuuxKnD8Itb
cLpRD8x7+2Z3FTVbk76wdkqp9IjcJUGDicNWdRLBG49hd0wtZoU6t1+UKUhIFcOEyh9C1p4WkW81
qZUD5QtceYlC2vxhJDWKBgRNbfKOfBGI69ZMgKtDVEYpY0/VDZClQUPlk8mCTssdFxI/
IJPxj4xr
QotX8g6Q7h/WhzEOGaVPU6s16KYH+L4Ko6CQXVo6G0QSi2q8DU7F6uwsO
+WpvwEuqxUNAzgGioMA
ChZX2ZWQDHHmRNOn74mMu9OB2d/qUPT7VBVtvns5gh9tQB2Ecw2/TharyCMIs5k=

Then I pass it to generateCRMFRequest() like so:

        var crmfObject = window.crypto.generateCRMFRequest ('CN=Test
CRMF', null, null,
                
'MIIDEDCCAfigAwIBAgIBATANBgkqhkiG9w0BAQUFADAoMQswCQYDVQQGEwJVUzEMMAoGA1UEChMD'+
'NTMxMQswCQYDVQQDEwJjYTAeFw0wNzExMTMxNTAxMjJaFw0xMDExMTMxNTAxMjJaMCgxCzAJBgNV'+
'BAYTAlVTMQwwCgYDVQQKEwM1MzExCzAJBgNVBAMTAmNhMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A'+
'MIIBCgKCAQEAsRCC0uVqV7PWAAlVg0aBKIKExrn
+hSyq531H144D6TkIN5EHJ5sfgeF3o6VMqUsX'+
'usfQNofIPpz6bUhSFCEIdbd5zeOdn5AqEVstY18uzE6vxWidmxe6qkMrPi51HW7oTPOreC5auTGC'+
'Jfnjk8hBnXtIx8Dt2vRgHH1laKYyeRLczN7tkcVc29D7FSxPW
+vrU6IhDnKbfKoh5uzTJ7TrDY0Q'+
'y6+5qfohd5k1gy4CQ7W/MRq6tsOks/x4+4iEJEhN/
RtsziW4qfhv81GOMyed8njgIXBGHmLGVTDI'+
'umWCfpMerHA
+UIz5a6SSeRV79lID7mYQMhrXDDNzJQ6zk1BtmQIDAQABo0UwQzASBgNVHRMBAf8E'+
'CDAGAQH/AgEDMA4GA1UdDwEB/
wQEAwIBxjAdBgNVHQ4EFgQUUsoh2TFbcOWauSNO6GFBSE/9MEcw'+
'DQYJKoZIhvcNAQEFBQADggEBAKH4M6J+EueLrQYUdtdXn29XSi
+tEB0e7eT5zeKuWEuuxKnD8Itb'+
'cLpRD8x7+2Z3FTVbk76wdkqp9IjcJUGDicNWdRLBG49hd0wtZoU6t1+UKUhIFcOEyh9C1p4WkW81'+
'qZUD5QtceYlC2vxhJDWKBgRNbfKOfBGI69ZMgKtDVEYpY0/VDZClQUPlk8mCTssdFxI/
IJPxj4xr'+
'QotX8g6Q7h/WhzEOGaVPU6s16KYH+L4Ko6CQXVo6G0QSi2q8DU7F6uwsO
+WpvwEuqxUNAzgGioMA'+
'ChZX2ZWQDHHmRNOn74mMu9OB2d/qUPT7VBVtvns5gh9tQB2Ecw2/TharyCMIs5k=',
                '',
                1024, null, 'rsa-ex');

the request is then placed on a form and sent to a servlet where I
retrieve the CRMF from the HTTP request and decode it.

Can you generate a CRMF request yourself with my cert and analyze the
POP section of the generated CRMF request ?
Or perhaps you could decode the CRMF request I get and see if you
observe the same ?

MIIEwTCCBL0wggSyAgUA/
wsb3DCBz4ABAqUWMBQxEjAQBgNVBAMTCVRlc3QgQ1JNRqaBnzANBgkq
hkiG9w0BAQEFAAOBjQAwgYkCgYEApQ1KFor5oiRRahGQX6394NiO5BPv6jashk4dnMGq9KjDPbfu
YgRZ5QqKT3lR7azuNxbXxhMPWEjswbsBfNoOfZjdnxBqH16monF18PVJzg1Fy8dpW4j/
MbEn+gSz
7SLcd4VS5TxPRrfnCB2GhVNkhbN7CE49XuKszJ7YOEIU/scCAwEAAakQMA4GA1UdDwEB/
wQEAwIF
IDCCA9UwggOzBgkrBgEFBQcFAQSgggOkMIIDoKEUBggqhkiG9w0DBwQIoMhxKyreKFyCggEBAJWE
p0AeSv3wovVziTmUlh9zMWxu9XKFqiGn9dmxSAHpLNQRmAI5wBadEOiV
+i5hjomPJ78lXspv4MsH
zBzvZTY8VZDvftC6/2ikwJvpdYflhT/R6uKTK9Zh
+MQNeZCfFHtxpyXDq9BbS7mzxmRtXpgdAK6k
9mWxG64V5I6dlfpcLDeZ4ZjeOQT3kR7oe4n4oCP3IuHQPsEvtL8EhhsQB04vbgCFBNC4Uz1+lwJO
AJeI4D9YdErtyqUo1MqBtwpQKL6DKJNrM9XsAYHmZfDNGCOb
+7Cpeo2rBr8BbQ0B5LEzuu56SibX
rvAaKerXUAj9MPE66xqurzfaAoE8ovrxk4QDggKBAHQFGYEH6sveKTqzR/v2WOfOM3tBzv/
yDCEs
CXYiE6VQIVHQFcyTNEleRT5zM6PIrUszFpG5f3xjcdLGq6DWUdlqbFbcLE0OluqVG/
6AWks3clqH
mg0V1SVIOkXqJxsbMGkzag2/Du0/yxdDL1vPb9NeDysw7qP4cL1d5Rnd
+5zmb39HXVFqZHdlRuXd
uNcb8Gf5J/qmfceKCeIbPh9quuQdUYKiagT7s1WPI38TuJXQQWNBAQMuV/
jmZ0dFKX7JZYmbrf5/
8ROdd+M05+kCfx4GyS2jEtCGvq/EbdTirx2y5BdbeN7Mmt2SY/WhO023Y0/z5micpg
+OrakJNLQc
U7N3SfiDmm1FAJ0LshkdgNEs6GVD/GCVC6/DvmFGgQgsVbjnfhUqwMz
+5y5FaRbaW76oqO0w6qeN
47Ef+YoZ7gfY/Jd3MVQaM6f9QVyUH5a5DddCgpN9f6qLhVqb86OBO8CIak+oKL
+wfRam52ZNDnB/
gGzYFamrjryh
+ejW6dR1eo5XRnKx5PstWeeR0VNbj3NzoeTiWZHQSnEPzCFOOYBoV94mEZ3rj3O7
/9NFb48L33y410Q69EfPUpKzbFwJpYu/Fq3YjMzOQnzzvR+8v54jVdy/
zNcGonYu2STLCR9SXxsf
M9XZ6iryr6G/
7GdgRxpQWc0DVceqKRTzo0KqRIeru9Q3+3f3nyt3z0yTYHRmUyg2cIN2MDjEP/tg
20Lt1NDNwJOYApQfFjlCIZzMIp6bsqDTRvsl6hb4cSutLxItvXF2wrb4oslS
+hCBZy2nWyZAKuyr
WuhOCKrop5FH0jikuEGf
+1sx14a7tIXxRAFkaog5A9BsXNDfJZoR1SQiY2UwDQYJKwYBBQUHBQEB
DAAwDQYJKwYBBQUHBQECDACiBYADAAMA

Please note that the ArchiveControl structure is generated ok and
seems to contain the generated private key (I have not tried to
actually decrypt it) so I would rule out that the generation or
encryption part fails.

Thanks,
Nikolai.
-- 
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto

Reply via email to