Add key pair
This commit is contained in:
parent
631a3b6884
commit
c7fc57cc7e
@ -1,15 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICSjCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQ0FADBCMQswCQYDVQQGEwJ1czEN
|
|
||||||
MAsGA1UECAwERGVtbzEPMA0GA1UECgwGQm94eUhRMRMwEQYDVQQDDApib3h5aHEu
|
|
||||||
Y29tMB4XDTIyMDExMzE3NTQ1NVoXDTIzMDExMzE3NTQ1NVowQjELMAkGA1UEBhMC
|
|
||||||
dXMxDTALBgNVBAgMBERlbW8xDzANBgNVBAoMBkJveHlIUTETMBEGA1UEAwwKYm94
|
|
||||||
eWhxLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4lbyAVpXmp1bGPGn
|
|
||||||
PfauUzTvPil0gDJaGBTYQ50A7lDLrD0rh/SbsRY5e8VA2JnYaKT7k53FL4n9ogjx
|
|
||||||
HQRT4b7s9ZjUUC7BHYPd4CzATjf6Iy48bbout2VphuZdWjwbY1uEfolaZR2QU4IR
|
|
||||||
4RYfa4L4fGZufA8ayunCWXTackMCAwEAAaNQME4wHQYDVR0OBBYEFKk0NXw5l0fq
|
|
||||||
MQ3GW4mNzazrZeEQMB8GA1UdIwQYMBaAFKk0NXw5l0fqMQ3GW4mNzazrZeEQMAwG
|
|
||||||
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEABIL+uv5KbnqLnvbeyglcuDSf
|
|
||||||
MVlPqMlvvliPLZa2TGluutL3t+jFfJNi6Vavd4BNyVsCYRe/ab8+/nok1Lu/IqKF
|
|
||||||
vifu1QGHsF1vKyafmVC8cMX/lxsvjedsOs++59yOAHAgXn+0IuBwupinKF4Tuqd7
|
|
||||||
n5gl9V4czyfFtrJUCQc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -1,15 +0,0 @@
|
|||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
MIICSjCCAbOgAwIBAgIBADANBgkqhkiG9w0BAQ0FADBCMQswCQYDVQQGEwJ1czEN
|
|
||||||
MAsGA1UECAwERGVtbzEPMA0GA1UECgwGQm94eUhRMRMwEQYDVQQDDApib3h5aHEu
|
|
||||||
Y29tMB4XDTIyMDExMzE3NTQ1NVoXDTIzMDExMzE3NTQ1NVowQjELMAkGA1UEBhMC
|
|
||||||
dXMxDTALBgNVBAgMBERlbW8xDzANBgNVBAoMBkJveHlIUTETMBEGA1UEAwwKYm94
|
|
||||||
eWhxLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA4lbyAVpXmp1bGPGn
|
|
||||||
PfauUzTvPil0gDJaGBTYQ50A7lDLrD0rh/SbsRY5e8VA2JnYaKT7k53FL4n9ogjx
|
|
||||||
HQRT4b7s9ZjUUC7BHYPd4CzATjf6Iy48bbout2VphuZdWjwbY1uEfolaZR2QU4IR
|
|
||||||
4RYfa4L4fGZufA8ayunCWXTackMCAwEAAaNQME4wHQYDVR0OBBYEFKk0NXw5l0fq
|
|
||||||
MQ3GW4mNzazrZeEQMB8GA1UdIwQYMBaAFKk0NXw5l0fqMQ3GW4mNzazrZeEQMAwG
|
|
||||||
A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQENBQADgYEABIL+uv5KbnqLnvbeyglcuDSf
|
|
||||||
MVlPqMlvvliPLZa2TGluutL3t+jFfJNi6Vavd4BNyVsCYRe/ab8+/nok1Lu/IqKF
|
|
||||||
vifu1QGHsF1vKyafmVC8cMX/lxsvjedsOs++59yOAHAgXn+0IuBwupinKF4Tuqd7
|
|
||||||
n5gl9V4czyfFtrJUCQc=
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
@ -2,11 +2,11 @@ import { promises as fs } from 'fs';
|
|||||||
import path from 'path';
|
import path from 'path';
|
||||||
|
|
||||||
const fetchPublicKey = async (): Promise<string> => {
|
const fetchPublicKey = async (): Promise<string> => {
|
||||||
return await fs.readFile(path.join('data', 'idp-public.key'), 'ascii');
|
return await fs.readFile(path.join('data', 'public.crt'), 'ascii');
|
||||||
};
|
};
|
||||||
|
|
||||||
const fetchPrivateKey = async (): Promise<string> => {
|
const fetchPrivateKey = async (): Promise<string> => {
|
||||||
return await fs.readFile(path.join('data', 'idp-private.key'), 'ascii');
|
return await fs.readFile(path.join('data', 'key.pem'), 'ascii');
|
||||||
}
|
}
|
||||||
|
|
||||||
const stripCertHeaderAndFooter = (cert: string): string => {
|
const stripCertHeaderAndFooter = (cert: string): string => {
|
||||||
|
|||||||
26
utils/idp.ts
Normal file
26
utils/idp.ts
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
import { promises as fs } from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
import { stripCertHeaderAndFooter } from './certificate';
|
||||||
|
|
||||||
|
const createIdPMetadataXML = async ({
|
||||||
|
idpEntityId,
|
||||||
|
idpSsoUrl,
|
||||||
|
certificate,
|
||||||
|
}: {
|
||||||
|
idpEntityId: string;
|
||||||
|
idpSsoUrl: string;
|
||||||
|
certificate: string;
|
||||||
|
}): Promise<string> => {
|
||||||
|
const xmlPath = path.join('data', 'idp-metadata.xml');
|
||||||
|
const xml = await fs.readFile(xmlPath, 'utf8');
|
||||||
|
certificate = stripCertHeaderAndFooter(certificate)
|
||||||
|
|
||||||
|
return xml
|
||||||
|
.replace('idp_entity_id', idpEntityId)
|
||||||
|
.replace('idp_certificate', certificate)
|
||||||
|
.replace(/idp_sso_url/g, idpSsoUrl);
|
||||||
|
};
|
||||||
|
|
||||||
|
export {
|
||||||
|
createIdPMetadataXML,
|
||||||
|
}
|
||||||
@ -1,3 +1,4 @@
|
|||||||
export * from './certificate'
|
export * from './certificate';
|
||||||
export * from './request'
|
export * from './request';
|
||||||
export * from './response'
|
export * from './response';
|
||||||
|
export * from './idp';
|
||||||
@ -33,25 +33,7 @@ const extractSAMLRequestAttributes = async (samlRequest: string) => {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
const createIdPMetadataXML = async ({
|
|
||||||
idpEntityId,
|
|
||||||
idpSsoUrl,
|
|
||||||
certificate,
|
|
||||||
}: {
|
|
||||||
idpEntityId: string;
|
|
||||||
idpSsoUrl: string;
|
|
||||||
certificate: string;
|
|
||||||
}): Promise<string> => {
|
|
||||||
const xmlPath = path.join('data', 'idp-metadata.xml');
|
|
||||||
const xml = await fs.readFile(xmlPath, 'utf8');
|
|
||||||
|
|
||||||
return xml
|
|
||||||
.replace('idp_entity_id', idpEntityId)
|
|
||||||
.replace('idp_certificate', certificate)
|
|
||||||
.replace(/idp_sso_url/g, idpSsoUrl);
|
|
||||||
};
|
|
||||||
|
|
||||||
export {
|
export {
|
||||||
extractSAMLRequestAttributes,
|
extractSAMLRequestAttributes,
|
||||||
createIdPMetadataXML,
|
|
||||||
}
|
}
|
||||||
@ -150,7 +150,7 @@ const signResponseXML = async (xml: string, signingKey: any, publicKey: any): Pr
|
|||||||
console.log({publicKey, signingKey})
|
console.log({publicKey, signingKey})
|
||||||
|
|
||||||
sig.signatureAlgorithm = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256';
|
sig.signatureAlgorithm = 'http://www.w3.org/2001/04/xmldsig-more#rsa-sha256';
|
||||||
sig.keyInfoProvider = new FileKeyInfo(stripCertHeaderAndFooter(publicKey));
|
sig.keyInfoProvider = new FileKeyInfo(publicKey);
|
||||||
sig.signingKey = signingKey;
|
sig.signingKey = signingKey;
|
||||||
|
|
||||||
sig.addReference(responseXPath, ['http://www.w3.org/2000/09/xmldsig#enveloped-signature', 'http://www.w3.org/2001/10/xml-exc-c14n#'], 'http://www.w3.org/2001/04/xmlenc#sha256');
|
sig.addReference(responseXPath, ['http://www.w3.org/2000/09/xmldsig#enveloped-signature', 'http://www.w3.org/2001/10/xml-exc-c14n#'], 'http://www.w3.org/2001/04/xmlenc#sha256');
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user