blob: 6b405cb78c50a3f3a2ecdccf27cfe8daab01ae20 [file] [log] [blame]
(function() {
function Tests(ASSERT, PEM) {
var _input = '-----BEGIN PRIVACY-ENHANCED MESSAGE-----\r\n' +
'Proc-Type: 4,ENCRYPTED\r\n' +
'Content-Domain: RFC822\r\n' +
'DEK-Info: DES-CBC,F8143EDE5960C597\r\n' +
'Originator-ID-Symmetric: linn@zendia.enet.dec.com,,\r\n' +
'Recipient-ID-Symmetric: linn@zendia.enet.dec.com,ptf-kmc,3\r\n' +
'Key-Info: DES-ECB,RSA-MD2,9FD3AAD2F2691B9A,\r\n' +
' B70665BB9BF7CBCDA60195DB94F727D3\r\n' +
'Recipient-ID-Symmetric: pem-dev@tis.com,ptf-kmc,4\r\n' +
'Key-Info: DES-ECB,RSA-MD2,161A3F75DC82EF26,\r\n' +
' E2EF532C65CBCFF79F83A2658132DB47\r\n' +
'\r\n' +
'LLrHB0eJzyhP+/fSStdW8okeEnv47jxe7SJ/iN72ohNcUk2jHEUSoH1nvNSIWL9M\r\n' +
'8tEjmF/zxB+bATMtPjCUWbz8Lr9wloXIkjHUlBLpvXR0UrUzYbkNpk0agV2IzUpk\r\n' +
'J6UiRRGcDSvzrsoK+oNvqu6z7Xs5Xfz5rDqUcMlK1Z6720dcBWGGsDLpTpSCnpot\r\n' +
'dXd/H5LMDWnonNvPCwQUHg==\r\n' +
'-----END PRIVACY-ENHANCED MESSAGE-----\r\n' +
'-----BEGIN PRIVACY-ENHANCED MESSAGE-----\r\n' +
'Proc-Type: 4,ENCRYPTED\r\n' +
'Content-Domain: RFC822\r\n' +
'DEK-Info: DES-CBC,BFF968AA74691AC1\r\n' +
'Originator-Certificate:\r\n' +
' MIIBlTCCAScCAWUwDQYJKoZIhvcNAQECBQAwUTELMAkGA1UEBhMCVVMxIDAeBgNV\r\n' +
' BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDzAN\r\n' +
' BgNVBAsTBk5PVEFSWTAeFw05MTA5MDQxODM4MTdaFw05MzA5MDMxODM4MTZaMEUx\r\n' +
' CzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5jLjEU\r\n' +
' MBIGA1UEAxMLVGVzdCBVc2VyIDEwWTAKBgRVCAEBAgICAANLADBIAkEAwHZHl7i+\r\n' +
' yJcqDtjJCowzTdBJrdAiLAnSC+CnnjOJELyuQiBgkGrgIh3j8/x0fM+YrsyF1u3F\r\n' +
' LZPVtzlndhYFJQIDAQABMA0GCSqGSIb3DQEBAgUAA1kACKr0PqphJYw1j+YPtcIq\r\n' +
' iWlFPuN5jJ79Khfg7ASFxskYkEMjRNZV/HZDZQEhtVaU7Jxfzs2wfX5byMp2X3U/\r\n' +
' 5XUXGx7qusDgHQGs7Jk9W8CW1fuSWUgN4w==\r\n' +
'Key-Info: RSA,\r\n' +
' I3rRIGXUGWAF8js5wCzRTkdhO34PTHdRZY9Tuvm03M+NM7fx6qc5udixps2Lng0+\r\n' +
' wGrtiUm/ovtKdinz6ZQ/aQ==\r\n' +
'Issuer-Certificate:\r\n' +
' MIIB3DCCAUgCAQowDQYJKoZIhvcNAQECBQAwTzELMAkGA1UEBhMCVVMxIDAeBgNV\r\n' +
' BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMQ8wDQYDVQQLEwZCZXRhIDExDTAL\r\n' +
' BgNVBAsTBFRMQ0EwHhcNOTEwOTAxMDgwMDAwWhcNOTIwOTAxMDc1OTU5WjBRMQsw\r\n' +
' CQYDVQQGEwJVUzEgMB4GA1UEChMXUlNBIERhdGEgU2VjdXJpdHksIEluYy4xDzAN\r\n' +
' BgNVBAsTBkJldGEgMTEPMA0GA1UECxMGTk9UQVJZMHAwCgYEVQgBAQICArwDYgAw\r\n' +
' XwJYCsnp6lQCxYykNlODwutF/jMJ3kL+3PjYyHOwk+/9rLg6X65B/LD4bJHtO5XW\r\n' +
' cqAz/7R7XhjYCm0PcqbdzoACZtIlETrKrcJiDYoP+DkZ8k1gCk7hQHpbIwIDAQAB\r\n' +
' MA0GCSqGSIb3DQEBAgUAA38AAICPv4f9Gx/tY4+p+4DB7MV+tKZnvBoy8zgoMGOx\r\n' +
' dD2jMZ/3HsyWKWgSF0eH/AJB3qr9zosG47pyMnTf3aSy2nBO7CMxpUWRBcXUpE+x\r\n' +
' EREZd9++32ofGBIXaialnOgVUn0OzSYgugiQ077nJLDUj0hQehCizEs5wUJ35a5h\r\n' +
'MIC-Info: RSA-MD5,RSA,\r\n' +
' UdFJR8u/TIGhfH65ieewe2lOW4tooa3vZCvVNGBZirf/7nrgzWDABz8w9NsXSexv\r\n' +
' AjRFbHoNPzBuxwmOAFeA0HJszL4yBvhG\r\n' +
'Recipient-ID-Asymmetric:\r\n' +
' MFExCzAJBgNVBAYTAlVTMSAwHgYDVQQKExdSU0EgRGF0YSBTZWN1cml0eSwgSW5j\r\n' +
' LjEPMA0GA1UECxMGQmV0YSAxMQ8wDQYDVQQLEwZOT1RBUlk=,66\r\n' +
'Key-Info: RSA,\r\n' +
' O6BS1ww9CTyHPtS3bMLD+L0hejdvX6Qv1HK2ds2sQPEaXhX8EhvVphHYTjwekdWv\r\n' +
' 7x0Z3Jx2vTAhOYHMcqqCjA==\r\n' +
'\r\n' +
'qeWlj/YJ2Uf5ng9yznPbtD0mYloSwIuV9FRYx+gzY+8iXd/NQrXHfi6/MhPfPF3d\r\n' +
'jIqCJAxvld2xgqQimUzoS1a4r7kQQ5c/Iua4LqKeq3ciFzEv/MbZhA==\r\n' +
'-----END PRIVACY-ENHANCED MESSAGE-----\r\n' +
'-----BEGIN RSA PRIVATE KEY-----\r\n' +
'MIIBPAIBAAJBALjXU+IdHkSkdBscgXf+EBoa55ruAIsU50uDFjFBkp+rWFt5AOGF\r\n' +
'9xL1/HNIby5M64BCw021nJTZKEOmXKdmzYsCAwEAAQJBAApyYRNOgf9vLAC8Q7T8\r\n' +
'bvyKuLxQ50b1D319EywFgLv1Yn0s/F9F+Rew6c04Q0pIqmuOGUM7z94ul/y5OlNJ\r\n' +
'2cECIQDveEW1ib2+787l7Y0tMeDzf/HQl4MAWdcxXWOeUFK+7QIhAMWZsukutEn9\r\n' +
'9/yqFMt8bL/dclfNn1IAgUL4+dMJ7zdXAiEAhaxGhVKxN28XuCOFhe/s2R/XdQ/O\r\n' +
'UZjU1bqCzDGcLvUCIGYmxu71Tg7SVFkyM/3eHPozKOFrU2m5CRnuTHhlMl2RAiEA\r\n' +
'0vhM5TEmmNWz0anPVabqDj9TA0z5MsDJQcn5NmO9xnw=\r\n' +
'-----END RSA PRIVATE KEY-----\r\n';
describe('pem', function() {
it('should decode and re-encode PEM messages', function() {
var msgs = PEM.decode(_input);
var output = '';
for(var i = 0; i < msgs.length; ++i) {
output += PEM.encode(msgs[i]);
}
ASSERT.equal(output, _input);
});
});
}
// check for AMD
if(typeof define === 'function') {
define([
'forge/pem'
], function(PEM) {
Tests(
// Global provided by test harness
ASSERT,
PEM()
);
});
} else if(typeof module === 'object' && module.exports) {
// assume NodeJS
Tests(
require('assert'),
require('../../js/pem')());
}
})();