code: public void init(byte[] blob, int start, int len) throws SshException {
  
  		ByteArrayReader bar = new ByteArrayReader(blob, start, len);
  
  		try {
  			// this.hostKey = hostKey;
  			RSAPublicKeySpec rsaKey;
  
  			// Extract the key information
  			String header = bar.readString();
  
  			if (!header.equals(getAlgorithm())) {
  				throw new SshException("The encoded key is not RSA",
  						SshException.INTERNAL_ERROR);
  			}
  
  			BigInteger e = bar.readBigInteger();
  			BigInteger n = bar.readBigInteger();
  			rsaKey = new RSAPublicKeySpec(n, e);
  
  			try {
  				KeyFactory kf = JCEProvider
  						.getProviderForAlgorithm(JCEAlgorithms.JCE_RSA) == null ? KeyFactory
  						.getInstance(JCEAlgorithms.JCE_RSA)
  						: KeyFactory
  								.getInstance(
  										JCEAlgorithms.JCE_RSA,
  										JCEProvider
  												.getProviderForAlgorithm(JCEAlgorithms.JCE_RSA));
  				pubKey = (RSAPublicKey) kf.generatePublic(rsaKey);
  
  			} catch (Exception ex) {
  				throw new SshException(
  						"Failed to obtain RSA key instance from JCE",
  						SshException.INTERNAL_ERROR, ex);
  			}
  		} catch (IOException ioe) {
  			throw new SshException("Failed to read encoded key data",
  					SshException.INTERNAL_ERROR);
  		} finally {
  			try {
  				bar.close();
  			} catch (IOException e) {
  			}
  		}
  
  	}
docs: /*
  (non-Javadoc)
  
  @see com.sshtools.ssh.SshPublicKey#init(byte[], int, int)