first commit
This commit is contained in:
22
node_modules/release-it/test/util/https-server/client/my-private-root-ca.cert.pem
generated
vendored
Normal file
22
node_modules/release-it/test/util/https-server/client/my-private-root-ca.cert.pem
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDrzCCApegAwIBAgIUUAyKcu86WuJQd1fdlHsXkCl1mYMwDQYJKoZIhvcNAQEL
|
||||
BQAwZzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDjAMBgNVBAcMBVByb3Zv
|
||||
MSMwIQYDVQQKDBpBQ01FIFNpZ25pbmcgQXV0aG9yaXR5IEluYzEUMBIGA1UEAwwL
|
||||
ZXhhbXBsZS5jb20wHhcNMjQxMjExMTMxMzIyWhcNMjcxMDAxMTMxMzIyWjBnMQsw
|
||||
CQYDVQQGEwJVUzENMAsGA1UECAwEVXRhaDEOMAwGA1UEBwwFUHJvdm8xIzAhBgNV
|
||||
BAoMGkFDTUUgU2lnbmluZyBBdXRob3JpdHkgSW5jMRQwEgYDVQQDDAtleGFtcGxl
|
||||
LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKlp3Kz278oyTDY4
|
||||
+1iNv1xMzWCJBWf7YxyYkXACVvZzUqgwxotNwAE/kE131HgpBJnu7HsDdS8nLy80
|
||||
mDkFCGmqEuVZMDaMGtcz3HJSklESjxYM1VNgifz2IlNmoaidNehFkCi1rz6cLMR0
|
||||
rEZpi98EbVZGl3n0vDD0eEZF5QQn/eDwclt/aKVBVLcQxo6MHhQdaK85a1uNyUU3
|
||||
HPUYiyPGVn9oX9PGcOpYFomJoBdg3sUVk32xKCUf15+uqVchdtyGFW/bp5KSBCnB
|
||||
QD0TzN+SgBHnVTzIfoi8WY56uuwnYauvT4fRh8SfkV91BzHBtWSbulNTfTUzgWhs
|
||||
VvCGw7ECAwEAAaNTMFEwHQYDVR0OBBYEFC4qTshaPoBie1ukhhM0KBi95NzJMB8G
|
||||
A1UdIwQYMBaAFC4qTshaPoBie1ukhhM0KBi95NzJMA8GA1UdEwEB/wQFMAMBAf8w
|
||||
DQYJKoZIhvcNAQELBQADggEBAB+fRdUHgqwpTWRfF+jQB4Af75HTfp6hgemUjapI
|
||||
eZn/OugS75/jfJt9npVsHl/aa63GL/W6kQShoMVOhrYqW52J1TSsLKZR2L7sv0ji
|
||||
KYfakv+aLkRKewPoVadsCL8GUmaCByE9mwlhmmZprkjDmA3hWsjEM5lyg7qleJ0k
|
||||
V32FVysdhLLnftt2SJB7lyoTujhkNAjJhLT/0Qr8t59v0sViPtL8532jSXqE1GK+
|
||||
zncsJDK7v2VEuurz1lPTRY6tPQOJ1Qt8vUzDH/ugcc5JPBEuHhjjrd5K65lxnGNw
|
||||
lnPHIS7FJm1OMkuatQXomNuuoWDPyM7fuVyGUUpmlkbpJsg=
|
||||
-----END CERTIFICATE-----
|
||||
BIN
node_modules/release-it/test/util/https-server/client/my-private-root-ca.crt
generated
vendored
Normal file
BIN
node_modules/release-it/test/util/https-server/client/my-private-root-ca.crt
generated
vendored
Normal file
Binary file not shown.
65
node_modules/release-it/test/util/https-server/gen-cert.sh
generated
vendored
Executable file
65
node_modules/release-it/test/util/https-server/gen-cert.sh
generated
vendored
Executable file
@@ -0,0 +1,65 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Generate client and server self-signed HTTPS certificates
|
||||
# Adapted from:
|
||||
# https://stackoverflow.com/questions/19665863/how-do-i-use-a-self-signed-certificate-for-a-https-node-js-server/24749608#24749608
|
||||
|
||||
FQDN=$1
|
||||
|
||||
if [ -z "$FQDN" ]; then
|
||||
echo -e "\nError: Missing required parameter for domain name.\n"
|
||||
echo -e "Usage:\n\t./gen-cert.sh <DOMAIN_NAME>\n"
|
||||
exit 1
|
||||
fi;
|
||||
|
||||
# make directories to work from
|
||||
mkdir -p server/ client/ all/
|
||||
|
||||
# Create your very own Root Certificate Authority
|
||||
openssl genrsa \
|
||||
-out all/my-private-root-ca.privkey.pem \
|
||||
2048
|
||||
|
||||
# Self-sign your Root Certificate Authority
|
||||
# Since this is private, the details can be as bogus as you like
|
||||
openssl req \
|
||||
-x509 \
|
||||
-new \
|
||||
-nodes \
|
||||
-key all/my-private-root-ca.privkey.pem \
|
||||
-days 1024 \
|
||||
-out all/my-private-root-ca.cert.pem \
|
||||
-subj "/C=US/ST=Utah/L=Provo/O=ACME Signing Authority Inc/CN=example.com"
|
||||
|
||||
# Create a Device Certificate for each domain,
|
||||
# such as example.com, *.example.com, awesome.example.com
|
||||
# NOTE: You MUST match CN to the domain name or ip address you want to use
|
||||
openssl genrsa \
|
||||
-out all/privkey.pem \
|
||||
2048
|
||||
|
||||
# Create a request from your Device, which your Root CA will sign
|
||||
openssl req -new \
|
||||
-key all/privkey.pem \
|
||||
-out all/csr.pem \
|
||||
-subj "/C=US/ST=Utah/L=Provo/O=ACME Tech Inc/CN=${FQDN}"
|
||||
|
||||
# Sign the request from Device with your Root CA
|
||||
openssl x509 \
|
||||
-req -in all/csr.pem \
|
||||
-CA all/my-private-root-ca.cert.pem \
|
||||
-CAkey all/my-private-root-ca.privkey.pem \
|
||||
-CAcreateserial \
|
||||
-out all/cert.pem \
|
||||
-days 500
|
||||
|
||||
# Put things in their proper place
|
||||
rsync -a all/{privkey,cert}.pem server/
|
||||
cat all/cert.pem > server/fullchain.pem # we have no intermediates in this case
|
||||
rsync -a all/my-private-root-ca.cert.pem server/
|
||||
rsync -a all/my-private-root-ca.cert.pem client/
|
||||
|
||||
# create DER format crt for iOS Mobile Safari, etc
|
||||
openssl x509 -outform der -in all/my-private-root-ca.cert.pem -out client/my-private-root-ca.crt
|
||||
|
||||
rm -r all
|
||||
150
node_modules/release-it/test/util/https-server/server.js
generated
vendored
Normal file
150
node_modules/release-it/test/util/https-server/server.js
generated
vendored
Normal file
@@ -0,0 +1,150 @@
|
||||
import { createServer } from 'node:https';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
import { debug } from 'node:util';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
/**
|
||||
* @typedef {import('http').IncomingMessage} IncomingMessage
|
||||
* @typedef {import('http').ServerResponse} ServerResponse
|
||||
* @typedef {ServerResponse & { req: IncomingMessage;}} RequestResponse
|
||||
* @typedef {import('https').ServerOptions} ServerOptions
|
||||
*/
|
||||
|
||||
const DIRNAME = getDirname();
|
||||
|
||||
/** @type {ServerOptions} */
|
||||
const options = {
|
||||
key: readFileSync(join(DIRNAME, './server/privkey.pem')),
|
||||
cert: readFileSync(join(DIRNAME, './server/fullchain.pem'))
|
||||
};
|
||||
|
||||
/**
|
||||
* Basic https server to use for the Gitlab tests.
|
||||
* Uses a self-signed HTTPS certificate to allow testing gitlab release options
|
||||
* like `insecure` or `certificateAuthorityFile`.
|
||||
*
|
||||
* The certicates were generated using the gen-cert.sh script in this folder
|
||||
* with the following command:
|
||||
*
|
||||
* `./gen-cert.sh localhost`
|
||||
*
|
||||
*/
|
||||
export class GitlabTestServer {
|
||||
constructor() {
|
||||
this.server = createServer(options, (req, res) => this._requestHandler(req, res));
|
||||
this.debug = debug('release-it:gitlab-test-server');
|
||||
}
|
||||
|
||||
/**
|
||||
* Starts the server with the given port and host
|
||||
*
|
||||
* @param {number} [port]
|
||||
* @param {string} [host]
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
run(port = 3000, host) {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (this.server.listening) {
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
this.server.listen(port, host, () => {
|
||||
const address = this.server.address();
|
||||
this.debug('Server listening on https://' + address.address + ':' + address.port);
|
||||
resolve();
|
||||
});
|
||||
|
||||
this.server.on('error', e => {
|
||||
if (e.code === 'EADDRINUSE') {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
|
||||
this.debug(e.message);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Closes the server
|
||||
*
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
stop() {
|
||||
return new Promise((resolve, reject) => {
|
||||
if (!this.server.listening) {
|
||||
resolve();
|
||||
return;
|
||||
}
|
||||
|
||||
this.server.removeAllListeners();
|
||||
|
||||
this.server.close(err => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
return;
|
||||
}
|
||||
|
||||
this.debug('Server successfully closed.');
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*
|
||||
* Server's main request handler
|
||||
*
|
||||
* @param {IncomingMessage} req
|
||||
* @param {RequestResponse} res
|
||||
* @returns {void}
|
||||
*/
|
||||
_requestHandler(req, res) {
|
||||
if (req.url === '/api/v4/user') {
|
||||
this._json(res, { id: '1234', username: 'release_bot' });
|
||||
return;
|
||||
}
|
||||
|
||||
if (req.url.startsWith('/api/v4/projects') && req.url.endsWith('/members/all/1234')) {
|
||||
this._json(res, { access_level: 50 });
|
||||
return;
|
||||
}
|
||||
|
||||
this._text(res, 'Ok');
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*
|
||||
* Sends out a JSON response
|
||||
*
|
||||
* @param {RequestResponse} res
|
||||
* @param {object} payload
|
||||
*/
|
||||
_json(res, payload) {
|
||||
res.writeHead(200, { 'content-type': 'application/json' });
|
||||
res.end(JSON.stringify(payload));
|
||||
}
|
||||
|
||||
/**
|
||||
* @private
|
||||
*
|
||||
* Sends out a text response
|
||||
*
|
||||
* @param {RequestResponse} res
|
||||
* @param {string} message
|
||||
*/
|
||||
_text(res, message) {
|
||||
res.writeHead(200, { 'content-type': 'text/plan' });
|
||||
res.end(message);
|
||||
}
|
||||
}
|
||||
|
||||
function getDirname() {
|
||||
if (import.meta.dirname) return import.meta.dirname;
|
||||
|
||||
return fileURLToPath(new URL('.', import.meta.url));
|
||||
}
|
||||
20
node_modules/release-it/test/util/https-server/server/cert.pem
generated
vendored
Normal file
20
node_modules/release-it/test/util/https-server/server/cert.pem
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDRjCCAi4CFGCNNJXfcHchSO1xHnWt5wcENGznMA0GCSqGSIb3DQEBCwUAMGcx
|
||||
CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMQ4wDAYDVQQHDAVQcm92bzEjMCEG
|
||||
A1UECgwaQUNNRSBTaWduaW5nIEF1dGhvcml0eSBJbmMxFDASBgNVBAMMC2V4YW1w
|
||||
bGUuY29tMB4XDTI0MTIxMTEzMTMyMloXDTI2MDQyNTEzMTMyMlowWDELMAkGA1UE
|
||||
BhMCVVMxDTALBgNVBAgMBFV0YWgxDjAMBgNVBAcMBVByb3ZvMRYwFAYDVQQKDA1B
|
||||
Q01FIFRlY2ggSW5jMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQC1+BYy7XcJoIAHqPcU7f74Dp/6N6f/hjLTADMIT1OO
|
||||
49W3Rrc6xbJjeLsiTD0Rj9Z/9CSI7Vh/AOLoW7OGMOZkJZNRw8L9lc14ZDB1FAcJ
|
||||
ITn8c9d0d0YltbxUOq509wEP6GSxYCqYZlvAjeyYADRW5PnP82n6MRMW9Ve5y50s
|
||||
ijeaVk120je5zKvQTd0IR9rXf8K3M8CmnlEVuuf4+uXvg0gUsGvSSkBxPVGeUQHM
|
||||
/zRxj/I8WYCewb9Qs2TSJjgnFsfUCF6C3xs/T8p4vJ8PxeLs6GNcQhhtNH0q7Wxa
|
||||
IV4cdrXkxPi6YS8ph1WErqNR2pdsCA5bUNTCT32vPjr/AgMBAAEwDQYJKoZIhvcN
|
||||
AQELBQADggEBACu1hC1yvFKF6nEjz4mdTmVIyqktfkQX4+5edpSCLM0UhOmQ9Tm3
|
||||
3NnQ06YhPnAkiXLiyKxoCGqulgh1B1+3Ii0/ttDq4D4HIEVMwT5Hmko3vppUkJD7
|
||||
aIacmTKxGFrtF+p1hIDXmAAYFUB2bWDgVvba2z70DkbffJBOwe/+2+hOgFXI5x3+
|
||||
IJuF0bYKRlFG0yvVX+ooWAaKmCSR4reCsjWNuP7KBBJv15GZLKfHPjDUuxW3u43/
|
||||
ZmyBM+1Fs91jt0v5w1dIDF0z1pxwbaRJ3w1M1kEU8i6/q+1YaahYvdeaa0jsdSsy
|
||||
kpz3YhZtb324TKmjfUFMzYvfcoR8IYDkekQ=
|
||||
-----END CERTIFICATE-----
|
||||
20
node_modules/release-it/test/util/https-server/server/fullchain.pem
generated
vendored
Normal file
20
node_modules/release-it/test/util/https-server/server/fullchain.pem
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDRjCCAi4CFGCNNJXfcHchSO1xHnWt5wcENGznMA0GCSqGSIb3DQEBCwUAMGcx
|
||||
CzAJBgNVBAYTAlVTMQ0wCwYDVQQIDARVdGFoMQ4wDAYDVQQHDAVQcm92bzEjMCEG
|
||||
A1UECgwaQUNNRSBTaWduaW5nIEF1dGhvcml0eSBJbmMxFDASBgNVBAMMC2V4YW1w
|
||||
bGUuY29tMB4XDTI0MTIxMTEzMTMyMloXDTI2MDQyNTEzMTMyMlowWDELMAkGA1UE
|
||||
BhMCVVMxDTALBgNVBAgMBFV0YWgxDjAMBgNVBAcMBVByb3ZvMRYwFAYDVQQKDA1B
|
||||
Q01FIFRlY2ggSW5jMRIwEAYDVQQDDAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEB
|
||||
AQUAA4IBDwAwggEKAoIBAQC1+BYy7XcJoIAHqPcU7f74Dp/6N6f/hjLTADMIT1OO
|
||||
49W3Rrc6xbJjeLsiTD0Rj9Z/9CSI7Vh/AOLoW7OGMOZkJZNRw8L9lc14ZDB1FAcJ
|
||||
ITn8c9d0d0YltbxUOq509wEP6GSxYCqYZlvAjeyYADRW5PnP82n6MRMW9Ve5y50s
|
||||
ijeaVk120je5zKvQTd0IR9rXf8K3M8CmnlEVuuf4+uXvg0gUsGvSSkBxPVGeUQHM
|
||||
/zRxj/I8WYCewb9Qs2TSJjgnFsfUCF6C3xs/T8p4vJ8PxeLs6GNcQhhtNH0q7Wxa
|
||||
IV4cdrXkxPi6YS8ph1WErqNR2pdsCA5bUNTCT32vPjr/AgMBAAEwDQYJKoZIhvcN
|
||||
AQELBQADggEBACu1hC1yvFKF6nEjz4mdTmVIyqktfkQX4+5edpSCLM0UhOmQ9Tm3
|
||||
3NnQ06YhPnAkiXLiyKxoCGqulgh1B1+3Ii0/ttDq4D4HIEVMwT5Hmko3vppUkJD7
|
||||
aIacmTKxGFrtF+p1hIDXmAAYFUB2bWDgVvba2z70DkbffJBOwe/+2+hOgFXI5x3+
|
||||
IJuF0bYKRlFG0yvVX+ooWAaKmCSR4reCsjWNuP7KBBJv15GZLKfHPjDUuxW3u43/
|
||||
ZmyBM+1Fs91jt0v5w1dIDF0z1pxwbaRJ3w1M1kEU8i6/q+1YaahYvdeaa0jsdSsy
|
||||
kpz3YhZtb324TKmjfUFMzYvfcoR8IYDkekQ=
|
||||
-----END CERTIFICATE-----
|
||||
22
node_modules/release-it/test/util/https-server/server/my-private-root-ca.cert.pem
generated
vendored
Normal file
22
node_modules/release-it/test/util/https-server/server/my-private-root-ca.cert.pem
generated
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDrzCCApegAwIBAgIUUAyKcu86WuJQd1fdlHsXkCl1mYMwDQYJKoZIhvcNAQEL
|
||||
BQAwZzELMAkGA1UEBhMCVVMxDTALBgNVBAgMBFV0YWgxDjAMBgNVBAcMBVByb3Zv
|
||||
MSMwIQYDVQQKDBpBQ01FIFNpZ25pbmcgQXV0aG9yaXR5IEluYzEUMBIGA1UEAwwL
|
||||
ZXhhbXBsZS5jb20wHhcNMjQxMjExMTMxMzIyWhcNMjcxMDAxMTMxMzIyWjBnMQsw
|
||||
CQYDVQQGEwJVUzENMAsGA1UECAwEVXRhaDEOMAwGA1UEBwwFUHJvdm8xIzAhBgNV
|
||||
BAoMGkFDTUUgU2lnbmluZyBBdXRob3JpdHkgSW5jMRQwEgYDVQQDDAtleGFtcGxl
|
||||
LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKlp3Kz278oyTDY4
|
||||
+1iNv1xMzWCJBWf7YxyYkXACVvZzUqgwxotNwAE/kE131HgpBJnu7HsDdS8nLy80
|
||||
mDkFCGmqEuVZMDaMGtcz3HJSklESjxYM1VNgifz2IlNmoaidNehFkCi1rz6cLMR0
|
||||
rEZpi98EbVZGl3n0vDD0eEZF5QQn/eDwclt/aKVBVLcQxo6MHhQdaK85a1uNyUU3
|
||||
HPUYiyPGVn9oX9PGcOpYFomJoBdg3sUVk32xKCUf15+uqVchdtyGFW/bp5KSBCnB
|
||||
QD0TzN+SgBHnVTzIfoi8WY56uuwnYauvT4fRh8SfkV91BzHBtWSbulNTfTUzgWhs
|
||||
VvCGw7ECAwEAAaNTMFEwHQYDVR0OBBYEFC4qTshaPoBie1ukhhM0KBi95NzJMB8G
|
||||
A1UdIwQYMBaAFC4qTshaPoBie1ukhhM0KBi95NzJMA8GA1UdEwEB/wQFMAMBAf8w
|
||||
DQYJKoZIhvcNAQELBQADggEBAB+fRdUHgqwpTWRfF+jQB4Af75HTfp6hgemUjapI
|
||||
eZn/OugS75/jfJt9npVsHl/aa63GL/W6kQShoMVOhrYqW52J1TSsLKZR2L7sv0ji
|
||||
KYfakv+aLkRKewPoVadsCL8GUmaCByE9mwlhmmZprkjDmA3hWsjEM5lyg7qleJ0k
|
||||
V32FVysdhLLnftt2SJB7lyoTujhkNAjJhLT/0Qr8t59v0sViPtL8532jSXqE1GK+
|
||||
zncsJDK7v2VEuurz1lPTRY6tPQOJ1Qt8vUzDH/ugcc5JPBEuHhjjrd5K65lxnGNw
|
||||
lnPHIS7FJm1OMkuatQXomNuuoWDPyM7fuVyGUUpmlkbpJsg=
|
||||
-----END CERTIFICATE-----
|
||||
28
node_modules/release-it/test/util/https-server/server/privkey.pem
generated
vendored
Normal file
28
node_modules/release-it/test/util/https-server/server/privkey.pem
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
-----BEGIN PRIVATE KEY-----
|
||||
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC1+BYy7XcJoIAH
|
||||
qPcU7f74Dp/6N6f/hjLTADMIT1OO49W3Rrc6xbJjeLsiTD0Rj9Z/9CSI7Vh/AOLo
|
||||
W7OGMOZkJZNRw8L9lc14ZDB1FAcJITn8c9d0d0YltbxUOq509wEP6GSxYCqYZlvA
|
||||
jeyYADRW5PnP82n6MRMW9Ve5y50sijeaVk120je5zKvQTd0IR9rXf8K3M8CmnlEV
|
||||
uuf4+uXvg0gUsGvSSkBxPVGeUQHM/zRxj/I8WYCewb9Qs2TSJjgnFsfUCF6C3xs/
|
||||
T8p4vJ8PxeLs6GNcQhhtNH0q7WxaIV4cdrXkxPi6YS8ph1WErqNR2pdsCA5bUNTC
|
||||
T32vPjr/AgMBAAECggEAHeLCZpfYmpSpIljuR5o063GfdZ1pco6MT1ozh3Rb0VZ6
|
||||
9bBgDH+Gpk6gUWg7CWTZwkcLLw/oHme7XJUe/XWPiTggo2em4TYWumSeDsR8yVOT
|
||||
LfKqmp6yPyRDa4P9vgkJPB8bVoRoSoJZJF1K08YI0pKlsrEUITqpG3as8z9NL5C1
|
||||
65QdpCwiRjLnM6b7k93Vxa8xOnj51iDXV9uqGASCYmU+uoHG8HU8RzbVI4Xi/RCr
|
||||
PszmOi6AMtWPpzH2jDPiYnv96K50O/cOm/n3obuySdH0qeGR37sx94F82iCyiowo
|
||||
Ij+iU8VYK6gu27z811ehSlk3/4ey8ArlHvVew3TkqQKBgQD+K70baVqolcGfkDQY
|
||||
zgZ+4YlmncDrdhd0anHUEC15l7uPPHFBxrQlzRVTjhHCKn1sQTj/41isUWQAvcRR
|
||||
ZzjI+YaHQvvzJCSX6c113IWeemCcuTxenW6G/5BHJxOPddFnrcAAoeHhcNvni/CZ
|
||||
WrInTIcWn7eY5MMaxa4ELUoKRwKBgQC3R1R9be3BY36wPYcPkTZFxRAn2o7/Z2Ft
|
||||
MDbrddDZt12F7cuD8YnipI7TkJLQTXmg6P7u2XexcEyAUy2J+jdgfpM0N/HXu3Su
|
||||
YeYXHJfyGUK6bTlQT+trNuEyX5K7h2IbBstvH9A4PXEZPQ2I3aPZk3WsL630cMo6
|
||||
tbTy0o3tiQKBgQCv11qxSCXsVA7scTtZnc9ooGgKkkERpVV8uNefOsH7STn9UneY
|
||||
Zfvj2wpSEAvBJNw4tLbWcVa7gGOLD75uAteKUvb7RSBBilO2tY3raHEYvtlwE8bs
|
||||
PkZlJxGN6D7kFUKWU+JtjZFUAlxgyLPfpJt0DMG4qS6/nCROtUw6n4qFqQKBgB2S
|
||||
JrGuIORI91HcO4Rpe4Y6S2cCvnu65F9HnjTTZ4UZLr/DJEj/ma21u02rT+TH+03Z
|
||||
CfjjoYpBgjZaNUjD1Fd/VKTiOeUC28qfBQ7JkEKBjOCjatHocyVzT1ZfUT9skoml
|
||||
yQD+8wt/7lWSIjLo/9zFDAFiGAEOibJ7Sty62CdxAoGBAJLwVkDCT3yylDRqm2YC
|
||||
1uYh/xGLW4F/Jj7PjGNrSYClkbxPTpd4Nfa8EyZmUUya1rsfK1njXZKbwwpa2fbE
|
||||
+QVpXB18vaMW3hU7u63JDpLv2pCm91myPMQsF3xMc/S1vFAOWmXetYWax4/xiG2M
|
||||
SW4m9mBkzzF/2SpxQd9xy1Jx
|
||||
-----END PRIVATE KEY-----
|
||||
Reference in New Issue
Block a user