Class KeyPair

    • Constructor Summary

      Constructors 
      Constructor Description
      KeyPair​(JSch jsch)  
    • Method Summary

      All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      private static byte a2b​(byte c)  
      private static byte b2a​(byte c)  
      (package private) void copy​(KeyPair kpair)  
      (package private) int countLength​(int len)  
      boolean decrypt​(byte[] _passphrase)  
      private byte[] decrypt​(byte[] data, byte[] passphrase, byte[] iv)  
      boolean decrypt​(java.lang.String _passphrase)  
      void dispose()  
      private byte[] encrypt​(byte[] plain, byte[][] _iv, byte[] passphrase)  
      void finalize()  
      abstract byte[] forSSHAgent()  
      private Cipher genCipher()  
      (package private) abstract void generate​(int key_size)  
      private HASH genHash()  
      (package private) byte[] genKey​(byte[] passphrase, byte[] iv)  
      static KeyPair genKeyPair​(JSch jsch, int type)  
      static KeyPair genKeyPair​(JSch jsch, int type, int key_size)  
      private Random genRandom()  
      (package private) abstract byte[] getBegin()  
      (package private) abstract byte[] getEnd()  
      java.lang.String getFingerPrint()
      Returns the finger-print of the public key.
      (package private) abstract int getKeySize()  
      abstract int getKeyType()  
      (package private) abstract byte[] getKeyTypeName()  
      (package private) abstract byte[] getPrivateKey()  
      byte[] getPublicKeyBlob()
      Returns the blob of the public key.
      java.lang.String getPublicKeyComment()  
      abstract byte[] getSignature​(byte[] data)  
      abstract Signature getVerifier()  
      boolean isEncrypted()  
      static KeyPair load​(JSch jsch, byte[] prvkey, byte[] pubkey)  
      static KeyPair load​(JSch jsch, java.lang.String prvkey)  
      static KeyPair load​(JSch jsch, java.lang.String prvfile, java.lang.String pubfile)  
      (package private) static KeyPair loadPPK​(JSch jsch, byte[] buf)  
      (package private) abstract boolean parse​(byte[] data)  
      private static boolean parseHeader​(Buffer buffer, java.util.Hashtable v)  
      private static byte[] parseLines​(Buffer buffer, int lines)  
      void setPassphrase​(byte[] passphrase)
      Deprecated.
      use #writePrivateKey(String name, byte[] passphrase)
      void setPassphrase​(java.lang.String passphrase)
      Deprecated.
      use #writePrivateKey(java.io.OutputStream out, byte[] passphrase)
      void setPublicKeyComment​(java.lang.String publicKeyComment)  
      (package private) int writeDATA​(byte[] buf, byte n, int index, byte[] data)  
      (package private) int writeINTEGER​(byte[] buf, int index, byte[] data)  
      (package private) int writeLength​(byte[] data, int index, int len)  
      (package private) int writeOCTETSTRING​(byte[] buf, int index, byte[] data)  
      void writePrivateKey​(java.io.OutputStream out)
      Writes the plain private key to the given output stream.
      void writePrivateKey​(java.io.OutputStream out, byte[] passphrase)
      Writes the cyphered private key to the given output stream.
      void writePrivateKey​(java.lang.String name)
      Writes the plain private key to the file.
      void writePrivateKey​(java.lang.String name, byte[] passphrase)
      Writes the cyphered private key to the file.
      void writePublicKey​(java.io.OutputStream out, java.lang.String comment)
      Writes the public key with the specified comment to the output stream.
      void writePublicKey​(java.lang.String name, java.lang.String comment)
      Writes the public key with the specified comment to the file.
      void writeSECSHPublicKey​(java.io.OutputStream out, java.lang.String comment)
      Writes the public key with the specified comment to the output stream in the format defined in http://www.ietf.org/rfc/rfc4716.txt
      void writeSECSHPublicKey​(java.lang.String name, java.lang.String comment)
      Writes the public key with the specified comment to the output stream in the format defined in http://www.ietf.org/rfc/rfc4716.txt
      (package private) int writeSEQUENCE​(byte[] buf, int index, int len)  
      • Methods inherited from class java.lang.Object

        clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • vendor

        int vendor
      • cr

        private static final byte[] cr
      • publicKeyComment

        protected java.lang.String publicKeyComment
      • cipher

        private Cipher cipher
      • hash

        private HASH hash
      • random

        private Random random
      • passphrase

        private byte[] passphrase
      • header

        static byte[][] header
      • space

        private static byte[] space
      • encrypted

        protected boolean encrypted
      • data

        protected byte[] data
      • iv

        private byte[] iv
      • publickeyblob

        private byte[] publickeyblob
      • header1

        private static final java.lang.String[] header1
      • header2

        private static final java.lang.String[] header2
      • header3

        private static final java.lang.String[] header3
    • Constructor Detail

      • KeyPair

        public KeyPair​(JSch jsch)
    • Method Detail

      • getBegin

        abstract byte[] getBegin()
      • getEnd

        abstract byte[] getEnd()
      • getKeySize

        abstract int getKeySize()
      • getSignature

        public abstract byte[] getSignature​(byte[] data)
      • getVerifier

        public abstract Signature getVerifier()
      • getPublicKeyComment

        public java.lang.String getPublicKeyComment()
      • setPublicKeyComment

        public void setPublicKeyComment​(java.lang.String publicKeyComment)
      • getPrivateKey

        abstract byte[] getPrivateKey()
      • writePrivateKey

        public void writePrivateKey​(java.io.OutputStream out,
                                    byte[] passphrase)
        Writes the cyphered private key to the given output stream.
        Parameters:
        out - output stream
        passphrase - a passphrase to encrypt the private key
      • getKeyTypeName

        abstract byte[] getKeyTypeName()
      • getKeyType

        public abstract int getKeyType()
      • getPublicKeyBlob

        public byte[] getPublicKeyBlob()
        Returns the blob of the public key.
        Returns:
        blob of the public key
      • writePublicKey

        public void writePublicKey​(java.io.OutputStream out,
                                   java.lang.String comment)
        Writes the public key with the specified comment to the output stream.
        Parameters:
        out - output stream
        comment - comment
      • writePublicKey

        public void writePublicKey​(java.lang.String name,
                                   java.lang.String comment)
                            throws java.io.FileNotFoundException,
                                   java.io.IOException
        Writes the public key with the specified comment to the file.
        Parameters:
        name - file name
        comment - comment
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
        See Also:
        writePublicKey(java.io.OutputStream out, String comment)
      • writeSECSHPublicKey

        public void writeSECSHPublicKey​(java.io.OutputStream out,
                                        java.lang.String comment)
        Writes the public key with the specified comment to the output stream in the format defined in http://www.ietf.org/rfc/rfc4716.txt
        Parameters:
        out - output stream
        comment - comment
      • writeSECSHPublicKey

        public void writeSECSHPublicKey​(java.lang.String name,
                                        java.lang.String comment)
                                 throws java.io.FileNotFoundException,
                                        java.io.IOException
        Writes the public key with the specified comment to the output stream in the format defined in http://www.ietf.org/rfc/rfc4716.txt
        Parameters:
        name - file name
        comment - comment
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
        See Also:
        writeSECSHPublicKey(java.io.OutputStream out, String comment)
      • writePrivateKey

        public void writePrivateKey​(java.lang.String name)
                             throws java.io.FileNotFoundException,
                                    java.io.IOException
        Writes the plain private key to the file.
        Parameters:
        name - file name
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
        See Also:
        writePrivateKey(String name, byte[] passphrase)
      • writePrivateKey

        public void writePrivateKey​(java.lang.String name,
                                    byte[] passphrase)
                             throws java.io.FileNotFoundException,
                                    java.io.IOException
        Writes the cyphered private key to the file.
        Parameters:
        name - file name
        passphrase - a passphrase to encrypt the private key
        Throws:
        java.io.FileNotFoundException
        java.io.IOException
        See Also:
        writePrivateKey(java.io.OutputStream out, byte[] passphrase)
      • getFingerPrint

        public java.lang.String getFingerPrint()
        Returns the finger-print of the public key.
        Returns:
        finger print
      • encrypt

        private byte[] encrypt​(byte[] plain,
                               byte[][] _iv,
                               byte[] passphrase)
      • parse

        abstract boolean parse​(byte[] data)
      • decrypt

        private byte[] decrypt​(byte[] data,
                               byte[] passphrase,
                               byte[] iv)
      • writeSEQUENCE

        int writeSEQUENCE​(byte[] buf,
                          int index,
                          int len)
      • writeINTEGER

        int writeINTEGER​(byte[] buf,
                         int index,
                         byte[] data)
      • writeOCTETSTRING

        int writeOCTETSTRING​(byte[] buf,
                             int index,
                             byte[] data)
      • writeDATA

        int writeDATA​(byte[] buf,
                      byte n,
                      int index,
                      byte[] data)
      • countLength

        int countLength​(int len)
      • writeLength

        int writeLength​(byte[] data,
                        int index,
                        int len)
      • genRandom

        private Random genRandom()
      • genHash

        private HASH genHash()
      • genCipher

        private Cipher genCipher()
      • genKey

        byte[] genKey​(byte[] passphrase,
                      byte[] iv)
      • setPassphrase

        public void setPassphrase​(java.lang.String passphrase)
        Deprecated.
        use #writePrivateKey(java.io.OutputStream out, byte[] passphrase)
      • setPassphrase

        public void setPassphrase​(byte[] passphrase)
        Deprecated.
        use #writePrivateKey(String name, byte[] passphrase)
      • isEncrypted

        public boolean isEncrypted()
      • decrypt

        public boolean decrypt​(java.lang.String _passphrase)
      • decrypt

        public boolean decrypt​(byte[] _passphrase)
      • a2b

        private static byte a2b​(byte c)
      • b2a

        private static byte b2a​(byte c)
      • dispose

        public void dispose()
      • finalize

        public void finalize()
        Overrides:
        finalize in class java.lang.Object
      • parseLines

        private static byte[] parseLines​(Buffer buffer,
                                         int lines)
      • parseHeader

        private static boolean parseHeader​(Buffer buffer,
                                           java.util.Hashtable v)
      • copy

        void copy​(KeyPair kpair)