Skip to content

Commit c954b45

Browse files
author
Bob Dill
committed
minor update to startup and start_rest_server script. Major update to C13 deploy for PAID IBM Cluster
1 parent b5e5c0d commit c954b45

File tree

37 files changed

+291
-71
lines changed

37 files changed

+291
-71
lines changed

Chapter03/Documentation/answers/placeholder_complete.js

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,14 @@
1313
*/
1414

1515

16-
var extend = require('extend');
16+
var extend = require('extend');
1717
var watson = require('watson-developer-cloud');
1818
var vcapServices = require('vcap_services');
1919

2020
var config = require('../../env.json');
2121

2222
exports.placeholder = function(req, res) {
23-
23+
/**
24+
* This file is a placeholder to ensure a consistent folder structure and is not used in any of the tutorial sections.
25+
*/
2426
}

Chapter03/start_rest_server.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ showStep "testing rest server \n when this completes, \n go to your favorite br
8282
# V0.14
8383
# composer-rest-server -p hlfv1 -n zerotoblockchain-network -i admin -s adminPW
8484
# V0.15
85-
showStep "starting rest server v0.15 for admin@$NETWORK_NAME"
85+
showStep "starting rest server v0.16 for admin@$NETWORK_NAME"
8686
composer-rest-server -c "admin@$NETWORK_NAME"

Chapter03/startup.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ function getCurrent()
1919
{
2020
showStep "getting current directory"
2121
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
22+
echo "DIR in startup.sh is $DIR"
2223
THIS_SCRIPT=`basename "$0"`
2324
showStep "Running '${THIS_SCRIPT}'"
2425
}
@@ -30,7 +31,8 @@ function showStep ()
3031
echo -e "${RESET}-----> $*" | indent
3132
echo -e "${YELLOW}=====================================================${RESET}" | indent
3233
}
33-
34+
showStep "running getCurrent"
35+
getCurrent
3436
showStep "using execs from previous installation, stored in ${HLF_INSTALL_PATH}"
3537
cd "${HLF_INSTALL_PATH}"
3638
showStep "starting fabric"
@@ -42,5 +44,18 @@ showStep "starting fabric"
4244
#
4345
showStep "creating new PeerAdmin card (required with each restart)"
4446
./createPeerAdminCard.sh
47+
showStep "copying admin card to ~/.hfc-key-store"
48+
CA_PEM_SOURCE="$DIR/controller/restapi/features/composer/creds"
49+
PEER_SOURCE="$HOME/.composer/client-data/PeerAdmin@hlfv1/*"
50+
HFC_KEY_STORE="$HOME/.hfc-key-store"
51+
echo "CA_PEM_SOURCE is: $CA_PEM_SOURCE"
52+
echo "PEER_SOURCE is: $PEER_SOURCE"
53+
echo "HFC_KEY_STORE is: $HFC_KEY_STORE"
54+
rm -R $HFC_KEY_STORE/
55+
mkdir $HFC_KEY_STORE
56+
cp -Rv ${CA_PEM_SOURCE}/ca.pem ${HFC_KEY_STORE}/
57+
cp -Rv ${PEER_SOURCE} ${HFC_KEY_STORE}/
58+
cp -Rv ${PEER_SOURCE} ${CA_PEM_SOURCE}/
59+
showStep 'Listing current cards'
4560
composer card list --name PeerAdmin@hlfv1
4661
showStep "start up complete"

Chapter04/network/lib/sample.js

-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ function Dispute(purchase) {
180180
/*
181181
** Your Code Goes Here
182182
*/
183-
}
184183
}
185184
/**
186185
* Resolve a seller initiated dispute

Chapter04/start_rest_server.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ showStep "testing rest server \n when this completes, \n go to your favorite br
8282
# V0.14
8383
# composer-rest-server -p hlfv1 -n zerotoblockchain-network -i admin -s adminPW
8484
# V0.15
85-
showStep "starting rest server v0.15 for admin@$NETWORK_NAME"
85+
showStep "starting rest server v0.16 for admin@$NETWORK_NAME"
8686
composer-rest-server -c "admin@$NETWORK_NAME"

Chapter04/startup.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ function getCurrent()
1919
{
2020
showStep "getting current directory"
2121
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
22+
echo "DIR in startup.sh is $DIR"
2223
THIS_SCRIPT=`basename "$0"`
2324
showStep "Running '${THIS_SCRIPT}'"
2425
}
@@ -30,7 +31,8 @@ function showStep ()
3031
echo -e "${RESET}-----> $*" | indent
3132
echo -e "${YELLOW}=====================================================${RESET}" | indent
3233
}
33-
34+
showStep "running getCurrent"
35+
getCurrent
3436
showStep "using execs from previous installation, stored in ${HLF_INSTALL_PATH}"
3537
cd "${HLF_INSTALL_PATH}"
3638
showStep "starting fabric"
@@ -42,5 +44,18 @@ showStep "starting fabric"
4244
#
4345
showStep "creating new PeerAdmin card (required with each restart)"
4446
./createPeerAdminCard.sh
47+
showStep "copying admin card to ~/.hfc-key-store"
48+
CA_PEM_SOURCE="$DIR/controller/restapi/features/composer/creds"
49+
PEER_SOURCE="$HOME/.composer/client-data/PeerAdmin@hlfv1/*"
50+
HFC_KEY_STORE="$HOME/.hfc-key-store"
51+
echo "CA_PEM_SOURCE is: $CA_PEM_SOURCE"
52+
echo "PEER_SOURCE is: $PEER_SOURCE"
53+
echo "HFC_KEY_STORE is: $HFC_KEY_STORE"
54+
rm -R $HFC_KEY_STORE/
55+
mkdir $HFC_KEY_STORE
56+
cp -Rv ${CA_PEM_SOURCE}/ca.pem ${HFC_KEY_STORE}/
57+
cp -Rv ${PEER_SOURCE} ${HFC_KEY_STORE}/
58+
cp -Rv ${PEER_SOURCE} ${CA_PEM_SOURCE}/
59+
showStep 'Listing current cards'
4560
composer card list --name PeerAdmin@hlfv1
4661
showStep "start up complete"

Chapter05/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter05/start_rest_server.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -82,5 +82,5 @@ showStep "testing rest server \n when this completes, \n go to your favorite br
8282
# V0.14
8383
# composer-rest-server -p hlfv1 -n zerotoblockchain-network -i admin -s adminPW
8484
# V0.15
85-
showStep "starting rest server v0.15 for admin@$NETWORK_NAME"
85+
showStep "starting rest server v0.16 for admin@$NETWORK_NAME"
8686
composer-rest-server -c "admin@$NETWORK_NAME"

Chapter05/startup.sh

+16-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ function getCurrent()
1919
{
2020
showStep "getting current directory"
2121
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
22+
echo "DIR in startup.sh is $DIR"
2223
THIS_SCRIPT=`basename "$0"`
2324
showStep "Running '${THIS_SCRIPT}'"
2425
}
@@ -30,7 +31,8 @@ function showStep ()
3031
echo -e "${RESET}-----> $*" | indent
3132
echo -e "${YELLOW}=====================================================${RESET}" | indent
3233
}
33-
34+
showStep "running getCurrent"
35+
getCurrent
3436
showStep "using execs from previous installation, stored in ${HLF_INSTALL_PATH}"
3537
cd "${HLF_INSTALL_PATH}"
3638
showStep "starting fabric"
@@ -42,5 +44,18 @@ showStep "starting fabric"
4244
#
4345
showStep "creating new PeerAdmin card (required with each restart)"
4446
./createPeerAdminCard.sh
47+
showStep "copying admin card to ~/.hfc-key-store"
48+
CA_PEM_SOURCE="$DIR/controller/restapi/features/composer/creds"
49+
PEER_SOURCE="$HOME/.composer/client-data/PeerAdmin@hlfv1/*"
50+
HFC_KEY_STORE="$HOME/.hfc-key-store"
51+
echo "CA_PEM_SOURCE is: $CA_PEM_SOURCE"
52+
echo "PEER_SOURCE is: $PEER_SOURCE"
53+
echo "HFC_KEY_STORE is: $HFC_KEY_STORE"
54+
rm -R $HFC_KEY_STORE/
55+
mkdir $HFC_KEY_STORE
56+
cp -Rv ${CA_PEM_SOURCE}/ca.pem ${HFC_KEY_STORE}/
57+
cp -Rv ${PEER_SOURCE} ${HFC_KEY_STORE}/
58+
cp -Rv ${PEER_SOURCE} ${CA_PEM_SOURCE}/
59+
showStep 'Listing current cards'
4560
composer card list --name PeerAdmin@hlfv1
4661
showStep "start up complete"

Chapter06/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter07/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter08/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter09/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter10/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter11/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter12/controller/restapi/features/composer/queryBlockChain.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ exports.getChainEvents = function(req, res, next) {
114114
channel.addOrderer(client.newOrderer(config.fabric.ordererURL));
115115
// change Admin in following line to admin
116116
var pemPath = path.join(__dirname,'creds','[email protected]');
117-
var adminPEM = fs.readFileSync(pemPath);
117+
var adminPEM = fs.readFileSync(pemPath).toString();
118118
var bcEvents = new hfcEH(client);
119119
bcEvents.setPeerAddr(config.fabric.peerEventURL, {pem: adminPEM});
120120
bcEvents.connect();

Chapter13/HTML/js/z2b-events.js

+14-4
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ function goEventInitialize()
145145
*/
146146
function addNotification(_event, _id, _orderID)
147147
{
148-
let method = 'showNotification';
148+
let method = 'addNotification';
149149
console.log(method+' _event'+_event+' id: '+_id+' orderID: '+_orderID);
150150
let type = getSubscriber(_id);
151151
if (type === 'none') {return;}
@@ -237,17 +237,27 @@ function notifyMe (_alerts, _id)
237237
* connect to web socket
238238
*/
239239
function wsConnect()
240-
{ if (!window.WebSocket) {console.log('this browser does not support web sockets');}
240+
{
241+
let method = 'wsConnect';
242+
if (!window.WebSocket) {console.log('this browser does not support web sockets');}
241243
let content = $('#body');
242244
let blockchain = $('#blockchain');
243-
wsSocket = new WebSocket('ws://'+host_address);
244-
wsSocket.onerror = function (error) {console.log('WebSocket error on wsSocket: ' + error);};
245+
// updated from ws: to wss: to support access over https
246+
if (host_address.slice(0,9) === 'localhost')
247+
{
248+
wsSocket = new WebSocket('ws://'+host_address);
249+
}else
250+
{
251+
wsSocket = new WebSocket('wss://'+host_address);
252+
}
253+
wsSocket.onerror = function (error) {console.log('WebSocket error on wsSocket: ', error);};
245254
wsSocket.onopen = function ()
246255
{console.log ('connect.onOpen initiated to: '+host_address); wsSocket.send('connected to client');};
247256
wsSocket.onmessage = function (message)
248257
{
249258
let incoming
250259
incoming = message.data;
260+
// console.log(method+ ' incoming is: '+incoming);
251261
while (incoming instanceof Object === false){incoming = JSON.parse(incoming);}
252262
switch (incoming.type)
253263
{

Chapter13/buildAndDeploy

+15-1
Original file line numberDiff line numberDiff line change
@@ -51,4 +51,18 @@ showStep "creating archive"
5151
showStep "starting network"
5252
./startup.sh
5353
showStep "deploying network"
54-
./deployNetwork.sh -n $NETWORK_NAME
54+
./deployNetwork.sh -n $NETWORK_NAME
55+
showStep "preserving admin cards for npm start processing"
56+
SOURCE_DIR='controller/restapi/features/composer/creds'
57+
BIZ_ADMIN='admin@zerotoblockchain-network'
58+
NET_ADMIN='PeerAdmin@hlfv1'
59+
if [[ ! -d $SOURCE_DIR/cards ]]; then
60+
mkdir $SOURCE_DIR/cards
61+
fi
62+
if [[ ! -d $SOURCE_DIR/client-data ]]; then
63+
mkdir $SOURCE_DIR/client-data
64+
fi
65+
cp -r $HOME/.composer/cards/$BIZ_ADMIN/ $SOURCE_DIR/cards/$BIZ_ADMIN/
66+
cp -r $HOME/.composer/cards/$NET_ADMIN/ $SOURCE_DIR/cards/$NET_ADMIN/
67+
cp -r $HOME/.composer/client-data/$BIZ_ADMIN/ $SOURCE_DIR/client-data/$BIZ_ADMIN/
68+
cp -r $HOME/.composer/client-data/$NET_ADMIN/ $SOURCE_DIR/client-data/$NET_ADMIN/

Chapter13/controller/env.json

+14-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,17 @@
11
{
2+
"fabric":
3+
{
4+
"user": "queryUser",
5+
"eventURL": "grpc://localhost:7053",
6+
"channelName": "composerchannel",
7+
"keyValStore": ".composer-credentials/PeerAdmin",
8+
"wallet_store": "creds",
9+
"peer": "peer0.org1.example.com",
10+
"peerRequestURL": "grpc://localhost:7051",
11+
"peerEventURL": "grpc://localhost:7053",
12+
"ordererURL" : "grpc://localhost:7050",
13+
"caURL": "http://localhost:7054"
14+
},
215
"composer":
316
{
417
"connectionProfile": "hlfv1",
@@ -19,5 +32,5 @@
1932
"enrollmentSecret": "temp"
2033
},
2134
"keyValStore": "/.composer-credentials",
22-
"kube_address":"173.193.99.29"
35+
"kube_address":"0.0.0.0"
2336
}

Chapter13/controller/restapi/features/composer/Z2B_Services.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ let Z2Blockchain = {
129129
return businessNetworkConnection.submitTransaction(_item)
130130
.then(() => {
131131
console.log(method+': order '+_id+' successfully added ');
132-
this.send(_con, ': order '+_id+' successfully added');
132+
this.send(_con, 'Message', 'Order '+_id+' successfully added');
133133
})
134134
.catch((error) => {
135135
if (error.message.search('MVCC_READ_CONFLICT') !== -1)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
3+
ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
4+
4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
5+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEa7wrEFDUaTFJMxWgu/s1eJgpaPm3
3+
oOFZFMkEecuRZXuVFR9hooAoVp1KKLkztntmnAPw1Lsiwx09HpngTIaDAg==
4+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
3+
ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
4+
4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
5+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"name":"PeerAdmin","mspid":"Org1MSP","roles":null,"affiliation":"","enrollmentSecret":"","enrollment":{"signingIdentity":"114aab0e76bf0c78308f89efc4b8c9423e31568da0c340ca187a9b17aa9a4457","identity":{"certificate":"-----BEGIN CERTIFICATE-----\nMIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL\nMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG\ncmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh\nLm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2\nWjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN\nU2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ\nMBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh\nWRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G\nA1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9\nrRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6\nCEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS\nXVMHPa0iyC497vdNURA=\n-----END CERTIFICATE-----\n"}}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQg00IwLLBKoi/9ikb6
3+
ZOAV0S1XeNGWllvlFDeczRKQn2uhRANCAARrvCsQUNRpMUkzFaC7+zV4mClo+beg
4+
4VkUyQR5y5Fle5UVH2GigChWnUoouTO2e2acA/DUuyLDHT0emeBMhoMC
5+
-----END PRIVATE KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
-----BEGIN PUBLIC KEY-----
2+
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEa7wrEFDUaTFJMxWgu/s1eJgpaPm3
3+
oOFZFMkEecuRZXuVFR9hooAoVp1KKLkztntmnAPw1Lsiwx09HpngTIaDAg==
4+
-----END PUBLIC KEY-----
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIICGjCCAcCgAwIBAgIRANuOnVN+yd/BGyoX7ioEklQwCgYIKoZIzj0EAwIwczEL
3+
MAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3JuaWExFjAUBgNVBAcTDVNhbiBG
4+
cmFuY2lzY28xGTAXBgNVBAoTEG9yZzEuZXhhbXBsZS5jb20xHDAaBgNVBAMTE2Nh
5+
Lm9yZzEuZXhhbXBsZS5jb20wHhcNMTcwNjI2MTI0OTI2WhcNMjcwNjI0MTI0OTI2
6+
WjBbMQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMN
7+
U2FuIEZyYW5jaXNjbzEfMB0GA1UEAwwWQWRtaW5Ab3JnMS5leGFtcGxlLmNvbTBZ
8+
MBMGByqGSM49AgEGCCqGSM49AwEHA0IABGu8KxBQ1GkxSTMVoLv7NXiYKWj5t6Dh
9+
WRTJBHnLkWV7lRUfYaKAKFadSii5M7Z7ZpwD8NS7IsMdPR6Z4EyGgwKjTTBLMA4G
10+
A1UdDwEB/wQEAwIHgDAMBgNVHRMBAf8EAjAAMCsGA1UdIwQkMCKAIBmrZau7BIB9
11+
rRLkwKmqpmSecIaOOr0CF6Mi2J5H4aauMAoGCCqGSM49BAMCA0gAMEUCIQC4sKQ6
12+
CEgqbTYe48az95W9/hnZ+7DI5eSnWUwV9vCd/gIgS5K6omNJydoFoEpaEIwM97uS
13+
XVMHPa0iyC497vdNURA=
14+
-----END CERTIFICATE-----

0 commit comments

Comments
 (0)