code: @SuppressWarnings("unchecked")
  	protected T init(String algorithm, PrivateKey privateKey, PublicKey publicKey) {
  		this.algorithm = algorithm;
  
  		if (null == privateKey && null == publicKey) {
  			initKeys();
  		} else {
  			if (null != privateKey) {
  				this.privateKey = privateKey;
  			}
  			if (null != publicKey) {
  				this.publicKey = publicKey;
  			}
  		}
  		return (T) this;
  	}
docs: 初始化<br>
  私钥和公钥同时为空时生成一对新的私钥和公钥<br>
  私钥和公钥可以单独传入一个，如此则只能使用此钥匙来做加密（签名）或者解密（校验）
  
  @param algorithm 算法
  @param privateKey 私钥
  @param publicKey 公钥
  @return this