How to use the crypt.X509 function in crypt

To help you get started, we’ve selected a few crypt 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 Kinoma / kinomajs / xs6 / extensions / ssl / ssl_cert_mc.js View on Github external
var x509 = [];
		for (var i = 0; i < n; i++)
			x509[i] = Crypt.X509.decode(certs[i]);
		for (var i = 0; i < n - 1; i++) {
			var spki = x509[i + 1].spki;
			if (!this._verify(spki, x509[i]))
				return false;
		}
		var aki = Crypt.X509.decodeAKI(certs[n - 1]);
		if (aki) {
			var spki = this.findCert("ca.ski", aki);
			if (spki && this._verify(spki, x509[n - 1]))
				return true;
			// else fall thru
		}
		var tbs = Crypt.X509.decodeTBS(x509[n - 1].tbs);
		var sha1 = new Crypt.SHA1();
		var issuer = sha1.process(tbs.issuer);
		var spki = this.findCert("ca.subject", issuer);
		return spki && this._verify(spki, x509[n - 1]);
	};
	_verify(spki, x509) {
github Kinoma / kinomajs / xs6 / extensions / ssl / ssl_cert_mc.js View on Github external
verify(certs, options) {	// @@ support additional certificates
		var n = certs.length;
		var x509 = [];
		for (var i = 0; i < n; i++)
			x509[i] = Crypt.X509.decode(certs[i]);
		for (var i = 0; i < n - 1; i++) {
			var spki = x509[i + 1].spki;
			if (!this._verify(spki, x509[i]))
				return false;
		}
		var aki = Crypt.X509.decodeAKI(certs[n - 1]);
		if (aki) {
			var spki = this.findCert("ca.ski", aki);
			if (spki && this._verify(spki, x509[n - 1]))
				return true;
			// else fall thru
		}
		var tbs = Crypt.X509.decodeTBS(x509[n - 1].tbs);
		var sha1 = new Crypt.SHA1();
		var issuer = sha1.process(tbs.issuer);
		var spki = this.findCert("ca.subject", issuer);
github Kinoma / kinomajs / xs6 / sources / mc / tools / print_ski.js View on Github external
var crt = Files.read(argv[argi]);
	var ski = Crypt.X509.decodeSKI(crt);
	if (ski.byteLength > 20) {
		trace("SKI too long!\n");
		continue;
	}
	if (ski.byteLength < 20) {
		var buf = new Uint8Array(20);
		buf.fill(0);
		buf.set(new Uint8Array(ski), 20 - ski.byteLength);
		ski = buf.buffer;
	}
	f1.write(ski);
	console.log((new Arith.Integer(ski)).toString(16, 40));
	var x509 = Crypt.X509.decode(crt);
	var tbs = Crypt.X509.decodeTBS(x509.tbs);
	sha1.reset();
	sha1.update(tbs.subject);
	var subject = sha1.close();
	f2.write(subject);
}
f1.close();
f2.close();
github Kinoma / kinomajs / xs6 / sources / mc / tools / print_ski.js View on Github external
*     See the License for the specific language governing permissions and
 *     limitations under the License.
 */
import Crypt from "crypt";
import Arith from "arith";
import Files from "files";
import File from "file";
import Bin from "bin";

var argv = process.execArgv();
var f1 = new File("/k2/ca.ski", 1);
var f2 = new File("/k2/ca.subject", 1);
var sha1 = new Crypt.SHA1();
for (var argi = 1, argc = argv.length; argi < argc; argi++) {
	var crt = Files.read(argv[argi]);
	var ski = Crypt.X509.decodeSKI(crt);
	if (ski.byteLength > 20) {
		trace("SKI too long!\n");
		continue;
	}
	if (ski.byteLength < 20) {
		var buf = new Uint8Array(20);
		buf.fill(0);
		buf.set(new Uint8Array(ski), 20 - ski.byteLength);
		ski = buf.buffer;
	}
	f1.write(ski);
	console.log((new Arith.Integer(ski)).toString(16, 40));
	var x509 = Crypt.X509.decode(crt);
	var tbs = Crypt.X509.decodeTBS(x509.tbs);
	sha1.reset();
	sha1.update(tbs.subject);