⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsaprivatekey.java

📁 一个非常好的ssh客户端实现
💻 JAVA
字号:
/****************************************************************************** * * Copyright (c) 1999-2003 AppGate Network Security AB. All Rights Reserved. *  * This file contains Original Code and/or Modifications of Original Code as * defined in and that are subject to the MindTerm Public Source License, * Version 2.0, (the 'License'). You may not use this file except in compliance * with the License. *  * You should have received a copy of the MindTerm Public Source License * along with this software; see the file LICENSE.  If not, write to * AppGate Network Security AB, Otterhallegatan 2, SE-41118 Goteborg, SWEDEN * *****************************************************************************/package com.mindbright.security.pkcs1;import java.math.BigInteger;import com.mindbright.security.publickey.RSAAlgorithm;import com.mindbright.asn1.ASN1Sequence;import com.mindbright.asn1.ASN1Integer;/** *  NOTE: Currently only supports pkcs#1 v1.5, otherPrimeInfos is left out. * * <pre> * RSAPrivateKey ::= SEQUENCE { *   version                 Version, *   modulus                 INTEGER, -- (Usually large) n *   publicExponent          INTEGER, -- (Usually small) e *   privateExponent         INTEGER, -- (Usually large) d *   prime1                  INTEGER, -- (Usually large) p *   prime2                  INTEGER, -- (Usually large) q *   exponent1               INTEGER, -- (Usually large) d mod (p-1) *   exponent2               INTEGER, -- (Usually large) d mod (q-1) *   coefficient             INTEGER, -- (Usually large) (inverse of q) mod p *   otherPrimeInfos         OtherPrimeInfos OPTIONAL * } * * Version ::= INTEGER { two-prime(0), multi(1) } *   (CONSTRAINED BY {-- version must be multi if otherPrimeInfos present --}) * * OtherPrimeInfos ::= SEQUENCE SIZE(1..MAX) OF OtherPrimeInfo * * OtherPrimeInfo ::= SEQUENCE { *   prime INTEGER,  -- ri *   exponent INTEGER, -- di *   coefficient INTEGER -- ti  * } * * </pre> */public class RSAPrivateKey extends ASN1Sequence {    public ASN1Integer version;    public ASN1Integer modulus;    public ASN1Integer publicExponent;    public ASN1Integer privateExponent;    public ASN1Integer prime1;    public ASN1Integer prime2;    public ASN1Integer exponent1;    public ASN1Integer exponent2;    public ASN1Integer coefficient;    public RSAPrivateKey() {	version         = new ASN1Integer();	modulus         = new ASN1Integer();	publicExponent  = new ASN1Integer();	privateExponent = new ASN1Integer();	prime1          = new ASN1Integer();	prime2          = new ASN1Integer();	exponent1       = new ASN1Integer();	exponent2       = new ASN1Integer();	coefficient     = new ASN1Integer();	addComponent(version);	addComponent(modulus);	addComponent(publicExponent);	addComponent(privateExponent);	addComponent(prime1);	addComponent(prime2);	addComponent(exponent1);	addComponent(exponent2);	addComponent(coefficient);    }    public RSAPrivateKey(int version,			 BigInteger modulus, BigInteger publicExponent,			 BigInteger privateExponent,			 BigInteger prime1, BigInteger prime2,			 BigInteger coefficient)    {	this(version, modulus, publicExponent, privateExponent,	     prime1, prime2,	     RSAAlgorithm.getPrimeExponent(privateExponent, prime1),	     RSAAlgorithm.getPrimeExponent(privateExponent, prime2),	     coefficient);    }    public RSAPrivateKey(int version,			 BigInteger modulus, BigInteger publicExponent,			 BigInteger privateExponent,			 BigInteger prime1, BigInteger prime2,			 BigInteger exponent1, BigInteger exponent2,			 BigInteger coefficient)    {	this();	this.version.setValue(version);	this.modulus.setValue(modulus);	this.publicExponent.setValue(publicExponent);	this.privateExponent.setValue(privateExponent);	this.prime1.setValue(prime1);	this.prime2.setValue(prime2);	this.exponent1.setValue(exponent1);	this.exponent2.setValue(exponent2);	this.coefficient.setValue(coefficient);    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -