https
express server läuft jetzt mit https
This commit is contained in:
26
express-server/node_modules/rsa-compat/tests/generate-csr.js
generated
vendored
Normal file
26
express-server/node_modules/rsa-compat/tests/generate-csr.js
generated
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
'use strict';
|
||||
|
||||
var RSA = require('../').RSA;
|
||||
|
||||
var keypair = {
|
||||
privateKeyJwk: {
|
||||
"kty": "RSA",
|
||||
"n": "AMJubTfOtAarnJytLE8fhNsEI8wnpjRvBXGK/Kp0675J10ORzxyMLqzIZF3tcrUkKBrtdc79u4X0GocDUgukpfkY+2UPUS/GxehUYbYrJYWOLkoJWzxn7wfoo9X1JgvBMY6wHQnTKvnzZdkom2FMhGxkLaEUGDSfsNznTTZNBBg9",
|
||||
"e": "AQAB",
|
||||
"d": "HT8DCrv69G3n9uFNovE4yMEMqW7lX0m75eJkMze3Jj5xNOa/4qlrc+4IuuA2uuyfY72IVQRxqqqXOuvS8ZForZZk+kWSd6z45hrpbNAAHH2Rf7XwnwHY8VJrOQF3UtbktTWqHX36ITZb9Hmf18hWsIeEp8Ng7Ru9h7hNuVxKMjk=",
|
||||
"p": "AONjOvZVAvhCM2JnLGWJG3+5Boar3MB5P4ezfExDmuyGET/w0C+PS60jbjB8TivQsSdEcGo7GOaOlmAX6EQtAec=",
|
||||
"q": "ANrllgJsy4rTMfa3mQ50kMIcNahiEOearhAcJgQUCHuOjuEnhU9FfExA/m5FXjmEFQhRwkuhk0QaIqTGbUzxGDs=",
|
||||
"dp": "ALuxHOpYIatqeZ+wKiVllx1GTOy8z+rQKnCI5wDMjQTPZU2yKSYY0g6IQFwlPyFLke8nvuLxBQzKhbWsBjzAKeE=",
|
||||
"dq": "XLhDAmPzE6rBzy+VtXnKl247jEd9wZzTfh9uOuwBa9TG0Lhcz2cvb11YaH0ZnGNGRW/cTQzzxDUN1531TlIRYQ==",
|
||||
"qi": "AI2apz6ECfGwhsvIcU3+yFt+3CA78CUVsX4NUul5m3Cls2m+5MbGQG5K0hGpxjDC3OmXTq1Y5gnep5yUZvVPZI4="
|
||||
}
|
||||
};
|
||||
|
||||
var csrPem = RSA.generateCsrPem(keypair, ['example.com', 'www.example.com']);
|
||||
var csr64 = RSA.generateCsrDerWeb64(keypair, ['example.com', 'www.example.com']);
|
||||
console.log('');
|
||||
console.log('DEBUG csrPem');
|
||||
console.log(csrPem);
|
||||
console.log('');
|
||||
console.log('DEBUG csr64');
|
||||
console.log(csr64);
|
33
express-server/node_modules/rsa-compat/tests/generate-key-new.js
generated
vendored
Normal file
33
express-server/node_modules/rsa-compat/tests/generate-key-new.js
generated
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
'use strict';
|
||||
|
||||
var RSA = require('../').RSA;
|
||||
|
||||
RSA.generateKeypair(null, function (err, keys) {
|
||||
if (!keys || !keys.privateKeyJwk) {
|
||||
throw new Error("Expected privateKeyJwk, but it is missing");
|
||||
}
|
||||
|
||||
var options = {
|
||||
public: true // export public keys
|
||||
, pem: true // export pems
|
||||
, jwk: false // export jwks
|
||||
, internal: true // preserve internal intermediate formats (_ursa, _forge)
|
||||
//, thumbprint: true // JWK sha256 thumbprint
|
||||
, bitlen: 2048
|
||||
, exp: 65537
|
||||
};
|
||||
RSA.generateKeypair(options, function (err, keys) {
|
||||
if (
|
||||
(keys.publicKeyJwk && !keys.thumbprint)
|
||||
|| !keys.privateKeyPem
|
||||
|| !keys.publicKeyPem
|
||||
//|| !keys.thumbprint
|
||||
) {
|
||||
console.error(Object.keys(keys));
|
||||
throw new Error("Missing expected keys");
|
||||
}
|
||||
|
||||
console.log('All is well!');
|
||||
});
|
||||
|
||||
});
|
31
express-server/node_modules/rsa-compat/tests/generate-key.js
generated
vendored
Normal file
31
express-server/node_modules/rsa-compat/tests/generate-key.js
generated
vendored
Normal file
@ -0,0 +1,31 @@
|
||||
'use strict';
|
||||
|
||||
var RSA = require('../').RSA;
|
||||
|
||||
RSA.generateKeypair(null, null, null, function (err, keys) {
|
||||
if (!keys.privateKeyJwk) {
|
||||
throw new Error("Expected privateKeyJwk, but it is missing");
|
||||
}
|
||||
|
||||
var options = {
|
||||
public: true // export public keys
|
||||
, pem: true // export pems
|
||||
, jwk: false // export jwks
|
||||
, internal: true // preserve internal intermediate formats (_ursa, _forge)
|
||||
//, thumbprint: true // JWK sha256 thumbprint
|
||||
};
|
||||
RSA.generateKeypair(512, 65537, options, function (err, keys) {
|
||||
if (
|
||||
(keys.publicKeyJwk && !keys.thumbprint)
|
||||
|| !keys.privateKeyPem
|
||||
|| !keys.publicKeyPem
|
||||
//|| !keys.thumbprint
|
||||
) {
|
||||
console.error(Object.keys(keys));
|
||||
throw new Error("Missing expected keys");
|
||||
}
|
||||
|
||||
console.log('All is well!');
|
||||
});
|
||||
|
||||
});
|
54
express-server/node_modules/rsa-compat/tests/generate-sig.js
generated
vendored
Normal file
54
express-server/node_modules/rsa-compat/tests/generate-sig.js
generated
vendored
Normal file
@ -0,0 +1,54 @@
|
||||
'use strict';
|
||||
|
||||
var RSA = require('../').RSA;
|
||||
|
||||
var keypair = {
|
||||
privateKeyJwk: {
|
||||
"kty": "RSA",
|
||||
"n": "AMJubTfOtAarnJytLE8fhNsEI8wnpjRvBXGK_Kp0675J10ORzxyMLqzIZF3tcrUkKBrtdc79u4X0GocDUgukpfkY-2UPUS_GxehUYbYrJYWOLkoJWzxn7wfoo9X1JgvBMY6wHQnTKvnzZdkom2FMhGxkLaEUGDSfsNznTTZNBBg9",
|
||||
"e": "AQAB",
|
||||
"d": "HT8DCrv69G3n9uFNovE4yMEMqW7lX0m75eJkMze3Jj5xNOa_4qlrc-4IuuA2uuyfY72IVQRxqqqXOuvS8ZForZZk-kWSd6z45hrpbNAAHH2Rf7XwnwHY8VJrOQF3UtbktTWqHX36ITZb9Hmf18hWsIeEp8Ng7Ru9h7hNuVxKMjk=",
|
||||
"p": "AONjOvZVAvhCM2JnLGWJG3-5Boar3MB5P4ezfExDmuyGET_w0C-PS60jbjB8TivQsSdEcGo7GOaOlmAX6EQtAec=",
|
||||
"q": "ANrllgJsy4rTMfa3mQ50kMIcNahiEOearhAcJgQUCHuOjuEnhU9FfExA_m5FXjmEFQhRwkuhk0QaIqTGbUzxGDs=",
|
||||
"dp": "ALuxHOpYIatqeZ-wKiVllx1GTOy8z-rQKnCI5wDMjQTPZU2yKSYY0g6IQFwlPyFLke8nvuLxBQzKhbWsBjzAKeE=",
|
||||
"dq": "XLhDAmPzE6rBzy-VtXnKl247jEd9wZzTfh9uOuwBa9TG0Lhcz2cvb11YaH0ZnGNGRW_cTQzzxDUN1531TlIRYQ==",
|
||||
"qi": "AI2apz6ECfGwhsvIcU3-yFt-3CA78CUVsX4NUul5m3Cls2m-5MbGQG5K0hGpxjDC3OmXTq1Y5gnep5yUZvVPZI4="
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
var ursaResult = {
|
||||
"header": {
|
||||
"alg": "RS256",
|
||||
"jwk": {
|
||||
"kty": "RSA",
|
||||
"n": "AMJubTfOtAarnJytLE8fhNsEI8wnpjRvBXGK_Kp0675J10ORzxyMLqzIZF3tcrUkKBrtdc79u4X0GocDUgukpfkY-2UPUS_GxehUYbYrJYWOLkoJWzxn7wfoo9X1JgvBMY6wHQnTKvnzZdkom2FMhGxkLaEUGDSfsNznTTZNBBg9",
|
||||
"e": "AQAB"
|
||||
}
|
||||
},
|
||||
"protected": "eyJub25jZSI6IjhlZjU2MjRmNWVjOWQzZWYifQ",
|
||||
"payload": "JLzF1NBNCV3kfbJ5sFaFyX94fJuL2H-IzaoBN-ciiHk",
|
||||
"signature": "Wb2al5SDyh5gjmkV79MK9m3sfNBBPjntSKor-34BBoGwr6n8qEnBmqB1Y4zbo-5rmvsoPmJsnRlP_hRiUY86zSAQyfbisTGrGBl0IQ7ditpkfYVm0rBWJ8WnYNqYNp8K3qcD7NW72tsy-XoWEjNlz4lWJeRdEG2Nt4CJgnREH4Y"
|
||||
};
|
||||
var forgeResult = {
|
||||
"header": {
|
||||
"alg": "RS256",
|
||||
"jwk": {
|
||||
"kty": "RSA",
|
||||
"n": "AMJubTfOtAarnJytLE8fhNsEI8wnpjRvBXGK_Kp0675J10ORzxyMLqzIZF3tcrUkKBrtdc79u4X0GocDUgukpfkY-2UPUS_GxehUYbYrJYWOLkoJWzxn7wfoo9X1JgvBMY6wHQnTKvnzZdkom2FMhGxkLaEUGDSfsNznTTZNBBg9",
|
||||
"e": "AQAB"
|
||||
}
|
||||
},
|
||||
"protected": "eyJub25jZSI6IjhlZjU2MjRmNWVjOWQzZWYifQ",
|
||||
"payload": "JLzF1NBNCV3kfbJ5sFaFyX94fJuL2H-IzaoBN-ciiHk",
|
||||
"signature": "Wb2al5SDyh5gjmkV79MK9m3sfNBBPjntSKor-34BBoGwr6n8qEnBmqB1Y4zbo-5rmvsoPmJsnRlP_hRiUY86zSAQyfbisTGrGBl0IQ7ditpkfYVm0rBWJ8WnYNqYNp8K3qcD7NW72tsy-XoWEjNlz4lWJeRdEG2Nt4CJgnREH4Y"
|
||||
};
|
||||
*/
|
||||
|
||||
var jws = RSA.signJws(
|
||||
keypair
|
||||
, Buffer.from('24bcc5d4d04d095de47db279b05685c97f787c9b8bd87f88cdaa0137e7228879', 'hex')
|
||||
, '8ef5624f5ec9d3ef'
|
||||
);
|
||||
|
||||
console.log(JSON.stringify(jws, null, ' '));
|
1
express-server/node_modules/rsa-compat/tests/privkey.jwk
generated
vendored
Normal file
1
express-server/node_modules/rsa-compat/tests/privkey.jwk
generated
vendored
Normal file
@ -0,0 +1 @@
|
||||
{"kty":"RSA","n":"sdk_fKUwpygZjNuAt7804KFBZoeBXtJ5cMZyRDRCmPNZRjOqXSdMTY7We7W103Ivs97hz--quMg-R8smv3F1-4Quyfm5vXFQWPxYdrsfJzPkyku4lY8uWbZ8N0X1CM61NgQHOAwe8eHOM0zd-MECxrBASBzLuiq6Df-GpsridFivMYlFj7UTXm92ReFyOXZUZacXneCVWyUMIU6Faj8h2UVpaCCNsopT0fRoqoBIJ-qeXhDpbvfLfhbb25p79msutxN7mpGW9a3wL1LyoCTpMLqIlZSWKKDVCNyoTS9RH7lch-j8_DtL9VfNTPv1rw-n-N-LQDQH6z5j7ZanXiek0Q","e":"AQAB","d":"pQuaej8Gpql1BJ4TlvHvzWJ4wgCQk4G5x2myUw84mp6Cw75gpLA6hGNBMm8QPRjjogX-Ay1EftT9zzx9Sf6uYepqTW_d6ivFR79vDUhcAdKLyRx6QPkuJ31NSzI10qWZz3XviRjegtRtunfkKtxbii24ifOHMM5D-Yef2xu_Cf5RRZVSipZdLRlgttSW2t-lXCaFN1-F8ITPCEqaQGoHn5fk9eEhl2sd3r8BCN1xp_KTAyqxBt9inDr__YlYynXS9Y35Wu4Ofn9CszwiCrZxezWO6Mn0-T-woDYj3jsO7aRvWPOIcMSaL7KqbM1BIWKPJqtSXqc8uVs4ZcVEnB4pXQ","p":"6sx1OM-3ise7cQCOffWLxbB8xNfpQSpyC0_ZzNF-FNSpCfFiJ6GjhBhgddppdyLD8jR34ZO4sTM6ny575ez6XOVrSUHi4Cavnv7DH8PxWT3_IVGKYKbqQt63KdIKpxxC3EoG66VPCQvjJ-TgkjNhqPLFKDW9ihvHVQlsDrVcLss","q":"wehZNfic8h69BUp8ynQIqSaao--N4fKm_fOH8kvmsZQlns0Asiy2jTYnfZy0jN380x_A8Q2Bx15N5byokRzn3NzC3dni_Z87h-c0Upss7G4iIPDngUwAN0EnraXbzVAv1jWC7wdsYJgSOLxJ0QVcLN-yPPs12ESf3hTQS2XNS1M","dp":"OWt0w0bw8Mx1h2YGcsFIxDir2ouerGQP7bpCXjdhKQD0sczJHz4FOfmoJUobfpoO5z1zj8PLZ_JKRMFeZVU1yOAGA61MKVrsmepdl3gYnqVtrh09xPMs2NuUWXLXThS4OR0VYi1UDbdNfuUXEknkeSedlX7G8m5mqeIa_eHWQE8","dq":"P7zGBi2QOS3NZ_3SAyIc7qzXy-ckNg7ywSrZltVIITrXGtm7ztVPtB8G4A0wc9VME4GuhA2yiPwAkvFuXzSnKjwOeanzKPa8NLHUywpiu9x_r2BAWInI0GDEUBnipBwlfT3dqgBAqYeTBb8ubFxcrgthpRXV3x6_hdpFlWMDFi0","qi":"FnwWA6Flj9jp2vy_RL1WEDTSr2xCdVm3guNuUhwXIav5-tXm5kDca-4fJEGUiSYzh_MLApUT9U-97zV5Qfws-OAq6pDu1-34hU-w1xpKh1OKvKEOfvYGX1mdzu3FIaaB7RQSr_TW3AyOl29HP--lOcrsYmIK5xnuqc13MQ6Nss4"}
|
27
express-server/node_modules/rsa-compat/tests/privkey.pem
generated
vendored
Normal file
27
express-server/node_modules/rsa-compat/tests/privkey.pem
generated
vendored
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEowIBAAKCAQEAsdk/fKUwpygZjNuAt7804KFBZoeBXtJ5cMZyRDRCmPNZRjOq
|
||||
XSdMTY7We7W103Ivs97hz++quMg+R8smv3F1+4Quyfm5vXFQWPxYdrsfJzPkyku4
|
||||
lY8uWbZ8N0X1CM61NgQHOAwe8eHOM0zd+MECxrBASBzLuiq6Df+GpsridFivMYlF
|
||||
j7UTXm92ReFyOXZUZacXneCVWyUMIU6Faj8h2UVpaCCNsopT0fRoqoBIJ+qeXhDp
|
||||
bvfLfhbb25p79msutxN7mpGW9a3wL1LyoCTpMLqIlZSWKKDVCNyoTS9RH7lch+j8
|
||||
/DtL9VfNTPv1rw+n+N+LQDQH6z5j7ZanXiek0QIDAQABAoIBAQClC5p6PwamqXUE
|
||||
nhOW8e/NYnjCAJCTgbnHabJTDzianoLDvmCksDqEY0EybxA9GOOiBf4DLUR+1P3P
|
||||
PH1J/q5h6mpNb93qK8VHv28NSFwB0ovJHHpA+S4nfU1LMjXSpZnPde+JGN6C1G26
|
||||
d+Qq3FuKLbiJ84cwzkP5h5/bG78J/lFFlVKKll0tGWC21Jba36VcJoU3X4XwhM8I
|
||||
SppAagefl+T14SGXax3evwEI3XGn8pMDKrEG32KcOv/9iVjKddL1jfla7g5+f0Kz
|
||||
PCIKtnF7NY7oyfT5P7CgNiPeOw7tpG9Y84hwxJovsqpszUEhYo8mq1Jepzy5Wzhl
|
||||
xUScHildAoGBAOrMdTjPt4rHu3EAjn31i8WwfMTX6UEqcgtP2czRfhTUqQnxYieh
|
||||
o4QYYHXaaXciw/I0d+GTuLEzOp8ue+Xs+lzla0lB4uAmr57+wx/D8Vk9/yFRimCm
|
||||
6kLetynSCqccQtxKBuulTwkL4yfk4JIzYajyxSg1vYobx1UJbA61XC7LAoGBAMHo
|
||||
WTX4nPIevQVKfMp0CKkmmqPvjeHypv3zh/JL5rGUJZ7NALIsto02J32ctIzd/NMf
|
||||
wPENgcdeTeW8qJEc59zcwt3Z4v2fO4fnNFKbLOxuIiDw54FMADdBJ62l281QL9Y1
|
||||
gu8HbGCYEji8SdEFXCzfsjz7NdhEn94U0EtlzUtTAoGAOWt0w0bw8Mx1h2YGcsFI
|
||||
xDir2ouerGQP7bpCXjdhKQD0sczJHz4FOfmoJUobfpoO5z1zj8PLZ/JKRMFeZVU1
|
||||
yOAGA61MKVrsmepdl3gYnqVtrh09xPMs2NuUWXLXThS4OR0VYi1UDbdNfuUXEknk
|
||||
eSedlX7G8m5mqeIa/eHWQE8CgYA/vMYGLZA5Lc1n/dIDIhzurNfL5yQ2DvLBKtmW
|
||||
1UghOtca2bvO1U+0HwbgDTBz1UwTga6EDbKI/ACS8W5fNKcqPA55qfMo9rw0sdTL
|
||||
CmK73H+vYEBYicjQYMRQGeKkHCV9Pd2qAECph5MFvy5sXFyuC2GlFdXfHr+F2kWV
|
||||
YwMWLQKBgBZ8FgOhZY/Y6dr8v0S9VhA00q9sQnVZt4LjblIcFyGr+frV5uZA3Gvu
|
||||
HyRBlIkmM4fzCwKVE/VPve81eUH8LPjgKuqQ7tft+IVPsNcaSodTiryhDn72Bl9Z
|
||||
nc7txSGmge0UEq/01twMjpdvRz/vpTnK7GJiCucZ7qnNdzEOjbLO
|
||||
-----END RSA PRIVATE KEY-----
|
86
express-server/node_modules/rsa-compat/tests/reciprocate.js
generated
vendored
Normal file
86
express-server/node_modules/rsa-compat/tests/reciprocate.js
generated
vendored
Normal file
@ -0,0 +1,86 @@
|
||||
'use strict';
|
||||
|
||||
var RSA = require('../').RSA;
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
|
||||
var privkeyPemRef = fs.readFileSync(path.join(__dirname, 'privkey.pem'), 'ascii');
|
||||
var privkeyJwkRef = JSON.parse(fs.readFileSync(path.join(__dirname, 'privkey.jwk'), 'ascii'));
|
||||
|
||||
var refs = {
|
||||
privPem: RSA.exportPrivatePem({ privateKeyJwk: privkeyJwkRef })
|
||||
, privJwk: RSA.exportPrivateJwk({ privateKeyPem: privkeyPemRef })
|
||||
};
|
||||
|
||||
var hasUrsa;
|
||||
var imported;
|
||||
|
||||
try {
|
||||
hasUrsa = require('ursa') && true;
|
||||
} catch(e) {
|
||||
hasUrsa = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// PEM tests
|
||||
//
|
||||
//
|
||||
console.log('JWK -> PEM ?', privkeyPemRef === refs.privPem);
|
||||
if (privkeyPemRef !== refs.privPem) {
|
||||
// Watch out for tricky whitespaces (\n instead of \r\n, trailing \r\n, etc)
|
||||
console.log('REF:');
|
||||
console.log(JSON.stringify(privkeyPemRef));
|
||||
console.log('GEN:');
|
||||
console.log(JSON.stringify(refs.privPem));
|
||||
throw new Error("Failed to validate importedJwk against referencePem");
|
||||
}
|
||||
|
||||
console.log('PEM -> _ -> PEM ?', privkeyPemRef === refs.privPem);
|
||||
if (hasUrsa) {
|
||||
imported = RSA.import({ privateKeyPem: privkeyPemRef });
|
||||
refs.privPem2 = RSA.exportPrivatePem({ _ursa: imported._ursa });
|
||||
}
|
||||
else {
|
||||
imported = RSA.import({ privateKeyPem: privkeyPemRef });
|
||||
refs.privPem2 = RSA.exportPrivatePem(imported);
|
||||
}
|
||||
if (privkeyPemRef !== refs.privPem2) {
|
||||
console.log('REF:');
|
||||
console.log(JSON.stringify(privkeyPemRef));
|
||||
console.log('GEN:');
|
||||
console.log(JSON.stringify(refs.privPem2));
|
||||
throw new Error("Failed to validate importedPem against referencePem");
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
//
|
||||
// JWK tests
|
||||
//
|
||||
//
|
||||
console.log('PEM -> JWK ?', privkeyJwkRef.n === refs.privJwk.n);
|
||||
if (![ 'kty', 'n', 'e', 'p', 'q', 'dp', 'dq', 'qi', 'd' ].every(function (k) {
|
||||
return privkeyJwkRef[k] === refs.privJwk[k];
|
||||
})) {
|
||||
console.log('REF:');
|
||||
console.log(privkeyJwkRef);
|
||||
console.log('GEN:');
|
||||
console.log(refs.privJwk);
|
||||
throw new Error("Failed to validate importedPem against referenceJwk");
|
||||
}
|
||||
|
||||
imported = RSA.import({ privateKeyJwk: privkeyJwkRef });
|
||||
refs.privJwk2 = RSA.exportPrivateJwk(imported);
|
||||
console.log('JWK -> _ -> JWK ?', privkeyJwkRef.n === refs.privJwk2.n);
|
||||
if (privkeyJwkRef.n !== refs.privJwk2.n) {
|
||||
console.log('REF:');
|
||||
console.log(privkeyJwkRef);
|
||||
console.log('GEN:');
|
||||
console.log(refs.privJwk2);
|
||||
throw new Error("Failed to validate importedJwk against referenceJwk");
|
||||
}
|
||||
|
||||
console.log('');
|
Reference in New Issue
Block a user