How to use fabric-ca-client - 10 common examples

To help you get started, we’ve selected a few fabric-ca-client examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github accordproject / concerto / packages / composer-systests / hlfv1 / setup-utils.js View on Github external
return new Promise((resolve, reject) => {
                if (user && user.isEnrolled()) {
                    console.log('Successfully loaded member from persistence');
                    return resolve(user);
                }

                // need to enroll it with CA server
                let cop = new copService(caUrl);

                let member;
                return cop.enroll({
                    enrollmentID: username,
                    enrollmentSecret: password
                }).then((enrollment) => {
                    console.log('Successfully enrolled user \'' + username + '\'');

                    member = new User(username, client);
                    return member.setEnrollment(enrollment.key, enrollment.certificate, mspid);
                }).then(() => {
                    return client.setUserContext(member);
                }).then(() => {
                    return resolve(member);
                }).catch((err) => {
                    console.log('Failed to enroll and persist user. Error: ' + err.stack ? err.stack : err);
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
}).then((enrollment) => {

			let cert;
			try {
				cert = X509.parseCert(FabricCAServices.normalizeX509(enrollment.certificate));
			} catch (err) {
				t.fail(util.format('Failed to parse enrollment cert\n%s\n. Error: %s', enrollment.certificate, err));
			}

			if (!cert.extensions || !cert.extensions.authorityKeyIdentifier) {
				t.fail(util.format('Parsed certificate does not contain Authority Key Identifier needed for revoke(): %j', cert));
			}

			// convert the raw AKI string in the form of 'keyid:HX:HX....' (HX represents a hex-encoded byte) to a hex string
			const akiString = cert.extensions.authorityKeyIdentifier;
			const arr = akiString.split(':');
			if (arr[0] !== 'keyid') {
				t.fail(util.format('Found an Autheority Key Identifier we do not understand: first segment is not "keyid": %s', akiString));
			}

			arr.shift(); // remove the 'keyid'
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
test('\n\n ** FabricCAClient: Test enroll With Static CSR **\n\n', (t) => {
	const endpoint = FabricCAServices._parseURL(fabricCAEndpoint);
	const client = new FabricCAClient({
		protocol: endpoint.protocol,
		hostname: endpoint.hostname,
		port: endpoint.port,
		tlsOptions: tlsOptions,
		caname: ORGS[userOrg].ca.name
	});

	return client.enroll(enrollmentID, enrollmentSecret, csr.toString())
		.then((enrollResponse) => {
			t.pass('Successfully invoked enroll API with enrollmentID \'' + enrollmentID + '\'');
			// check that we got back the expected certificate
			let subject;
			try {
				subject = X509.getSubject(FabricCAServices.normalizeX509(enrollResponse.enrollmentCert));
			} catch (err) {
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
async function timeOutTest(signingIdentity, t) {
	const CONNECTION_TIMEOUT = FabricCAServices.getConfigSetting('connection-timeout');
	t.equal(CONNECTION_TIMEOUT, 3000, 'connection-timeout should have default value 3000');
	const SO_TIMEOUT = FabricCAServices.getConfigSetting('socket-operation-timeout');
	t.equal(SO_TIMEOUT, undefined, 'socket-operation-timeout should have default value undefined');

	let start, end;
	// test CONNECTION_TIMEOUT
	// Connect to a non-routable IP address should throw error connection_timeout
	try {
		const caClient = new FabricCAServices('http://10.255.255.1:3000')._fabricCAClient;
		start = Date.now();
		await caClient.request('GET', '/aMethod', signingIdentity);
		t.fail('Should throw error by CONNECTION_TIMEOUT');
	} catch (e) {
		end = Date.now();
		logger.debug('Conection failed with error ' + e.toString());
		if (e.message === 'Calling /aMethod endpoint failed, CONNECTION Timeout') {
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
function getFabricCAService() {
	FabricCAServices.addConfigFile(path.join(__dirname, 'e2e', 'config.json'));
	ORGS = FabricCAServices.getConfigSetting('test-network');
	fabricCAEndpoint = ORGS[userOrg].ca.url;

	FabricCAServices.getConfigSetting('crypto-keysize', '256');// force for npm test
	FabricCAServices.setConfigSetting('crypto-hash-algo', 'SHA2');// force for npm test

	return new FabricCAServices(fabricCAEndpoint, tlsOptions, ORGS[userOrg].ca.name);
}
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
async function timeOutTest(signingIdentity, t) {
	const CONNECTION_TIMEOUT = FabricCAServices.getConfigSetting('connection-timeout');
	t.equal(CONNECTION_TIMEOUT, 3000, 'connection-timeout should have default value 3000');
	const SO_TIMEOUT = FabricCAServices.getConfigSetting('socket-operation-timeout');
	t.equal(SO_TIMEOUT, undefined, 'socket-operation-timeout should have default value undefined');

	let start, end;
	// test CONNECTION_TIMEOUT
	// Connect to a non-routable IP address should throw error connection_timeout
	try {
		const caClient = new FabricCAServices('http://10.255.255.1:3000')._fabricCAClient;
		start = Date.now();
		await caClient.request('GET', '/aMethod', signingIdentity);
		t.fail('Should throw error by CONNECTION_TIMEOUT');
	} catch (e) {
		end = Date.now();
		logger.debug('Conection failed with error ' + e.toString());
		if (e.message === 'Calling /aMethod endpoint failed, CONNECTION Timeout') {
			// for connection timeout, verify the timeout value
			t.equal(Math.floor((end - start) / 1000), 3, 'should have duration roughly equals 3000');
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
function getFabricCAService() {
	FabricCAServices.addConfigFile(path.join(__dirname, 'e2e', 'config.json'));
	ORGS = FabricCAServices.getConfigSetting('test-network');
	fabricCAEndpoint = ORGS[userOrg].ca.url;

	FabricCAServices.getConfigSetting('crypto-keysize', '256');// force for npm test
	FabricCAServices.setConfigSetting('crypto-hash-algo', 'SHA2');// force for npm test

	return new FabricCAServices(fabricCAEndpoint, tlsOptions, ORGS[userOrg].ca.name);
}
github hyperledger / fabric-sdk-node / test / unit / headless-tests.js View on Github external
// User tests //////////
var User = require('fabric-client/lib/User.js');
var memberName = 'Donald T. Duck';
var enrollmentID = 123454321;
var roles = ['admin', 'user'];
var memberCfg = {
	'enrollmentID': enrollmentID,
	'roles': roles
};
var _client = null;
// End: User tests //////

// FabricCoPServices tests /////////
var FabricCAServices = require('fabric-ca-client/lib/FabricCAClientImpl');
var FabricCAClient = FabricCAServices.FabricCAClient;
// End: FabricCoPServices tests ////

// GRPC Options tests ///////////////
var Remote = require('fabric-client/lib/Remote.js');
var Peer = require('fabric-client/lib/Peer.js');
var Orderer = require('fabric-client/lib/Orderer.js');
var Config = require('fabric-client/lib/Config.js');
var aPem = '-----BEGIN CERTIFICATE-----' +
	'MIIBwTCCAUegAwIBAgIBATAKBggqhkjOPQQDAzApMQswCQYDVQQGEwJVUzEMMAoG' +
	'A1UEChMDSUJNMQwwCgYDVQQDEwNPQkMwHhcNMTYwMTIxMjI0OTUxWhcNMTYwNDIw' +
	'MjI0OTUxWjApMQswCQYDVQQGEwJVUzEMMAoGA1UEChMDSUJNMQwwCgYDVQQDEwNP' +
	'QkMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR6YAoPOwMzIVi+P83V79I6BeIyJeaM' +
	'meqWbmwQsTRlKD6g0L0YvczQO2vp+DbxRN11okGq3O/ctcPzvPXvm7Mcbb3whgXW' +
	'RjbsX6wn25tF2/hU6fQsyQLPiJuNj/yxknSjQzBBMA4GA1UdDwEB/wQEAwIChDAP' +
	'BgNVHRMBAf8EBTADAQH/MA0GA1UdDgQGBAQBAgMEMA8GA1UdIwQIMAaABAECAwQw' +
	'CgYIKoZIzj0EAwMDaAAwZQIxAITGmq+x5N7Q1jrLt3QFRtTKsuNIosnlV4LR54l3' +
github hyperledger / fabric / test / tools / PTE / pte-execRequest.js View on Github external
var path = require('path');

var hfc = require('fabric-client');
hfc.setLogger(logger);

var fs = require('fs');
var grpc = require('grpc');
var util = require('util');
var testUtil = require('./pte-util.js');
var utils = require('fabric-client/lib/utils.js');
var Peer = require('fabric-client/lib/Peer.js');
var Orderer = require('fabric-client/lib/Orderer.js');
var EventHub = require('fabric-client/lib/EventHub.js');
var FabricCAServices = require('fabric-ca-client/lib/FabricCAClientImpl');
var FabricCAClient = FabricCAServices.FabricCAClient;
var User = require('fabric-client/lib/User.js');
var Client = require('fabric-client/lib/Client.js');
var _commonProto = grpc.load(path.join(__dirname, 'node_modules/fabric-client/lib/protos/common/common.proto')).common;

const crypto = require('crypto');

utils.setConfigSetting('crypto-keysize', 256);


// local vars
var tmp;
var tCurr;
var tEnd;
var tLocal;
var i = 0;
var inv_m = 0;    // counter of invoke move
github hyperledger / fabric-sdk-node / test / integration / fabric-ca-services-tests.js View on Github external
t.fail('Calling non-routable endpoint failed with unexpected error: ' + e.toString());
		}
	}

	// create a mock server, the mock server wait for 10 seconds until send response
	const mockServer = http.createServer((req, res) => {
		setTimeout(() => {
			res.writeHead(200, {'Content-Type': 'text/plain'});
			res.write('Response');
			res.end();
		}, 10000);
	});
	mockServer.listen(3000);

	// set SO_TIMEOUT to 5000
	FabricCAServices.setConfigSetting('socket-operation-timeout', 5000);

	// test SO_TIMEOUT
	try {
		const caClient = new FabricCAServices('http://localhost:3000')._fabricCAClient;
		start = Date.now();
		await caClient.request('GET', '/aMethod', signingIdentity);
		t.fail('Should throw error by SO_TIMEOUT');
	} catch (e) {
		end = Date.now();
		t.equal(Math.floor((end - start) / 1000), 5, 'should have duration roughly equals 5000');
		if (e.message.includes('endpoint failed')) {
			t.pass('Successfully throw error after SO_TIMEOUT');
		} else {
			t.fail('did not throw error after SO_TIMEOUT');
		}
		mockServer.close();