Loading encrypted key

322 Views Asked by At

Problems to decrypt and encrypted key using chilkat sshkey.

I'm setting up an SFTP transfer between an Android terminal and a linux server via SFTP. I did create a key using openssh (ssh-keygen) and tested the key via another linux box. It works nicely. I'm trying now to do the same from the Android. I loaded the private key on the device

CkSshKey key = new CkSshKey(); String privKey = key.loadText();

I set up the passphrase used to generate the key key.put_Password(mPrefs.getSftpSapPass()); / <- is a string

and I'm sure is loaded because I did check with getPassword :

    CkString checkPwd = new CkString();
    key.get_Password(checkPwd);
    if (checkPwd == null) {
       Log.d(TAG, "Password not assigned");
       key.get_LastMethodSuccess();
       Log.i(TAG, "Put Password : " + key.lastErrorText());
    } else {
       Log.d(TAG, "Assigned password : " + checkPwd.getString());
       Log.i(TAG, "Info : " + key.lastErrorText());
    }

Then I try to load the key : key.FromOpenSshPrivateKey(privKey);

and it fails !

  FromOpenSshPrivateKey:
    DllDate: Jul 26 2019
    ChilkatVersion: 9.5.0.79
    UnlockPrefix: Anything for 30-day trial
    Architecture: Little Endian; 32-bit
    Language: Android Java
    VerboseLogging: 0
    fromOpenSshPrivateKey:
      loadPem2:
        loadPem:
          itemType: RSA PRIVATE KEY
          addPemItem:
            decryptPem:
              sbMime: Content-Transfer-Encoding: base64
Proc-Type: 4,ENCRYPTED
DEK-Info: AES-128-CBC,FFC30E1594858F31B5D56E104A01A401

NGtNvFQ+lk3kZMIBX1oTHhY4xDWdaS3OMGQFE8h/r8k4gPMpTSAdKUMWj2qr4x3Z ......................................    kOf7SEY02vMyiYj9A8iSw91qYR7esn1rMOpScdYwp5K65KHgUukrtDR4zRaLHjAT
              encryptionAlg: AES-128-CBC
              ivNumBytes: 16
              encNumBytes: 2352
              decNumBytes: 2352
            --decryptPem
            Failed to load private key...
          --addPemItem
          Failed to add PEM item.
        --loadPem
        Failed to load PEM
      --loadPem2
      Check the password, it may be 

The passphrase is correct. What can be ? The passphrase I used contains spaces, could be that the problem ? Any hint can helps !!!

Thanks

2

There are 2 best solutions below

0
On

Ok, did find the problem, maybe can be useful to somebody else. Apparently the chilkat library doesn't use "passphrase". Instead of a passphrase with spaces and/or special characters, I had to set up a password with no spaces/special characters.

For example, originally I used: "This is a passphrase you're using"

Not working.

But also "This_is_a_passphrase_you're_using" did not work. Then I did try : "This_is_a_passphrase_youre_using" .. the same, i.e. not working.

In the end to have the authentication working I used : "ThisIsAPassphraseYoureUsing"

Steve

1
On

I found Chilkat to be working. I used ssh-keygen to create an RSA private key with the passphrase "this is a test". Chilkat works fine.

Here's the key which you can test yourself:

    -----BEGIN RSA PRIVATE KEY-----
    Proc-Type: 4,ENCRYPTED
    DEK-Info: AES-128-CBC,CEF19B85A3787E84C2C667A98698B601

    bOkX6mpOEPB5viHMHvYXY4v+ViuxHMw2GogybP+am4/UTY2TTK8NrUsEIMteJSRb
    7xE7IGMTk3IJ6RzOGAbnd6nET5T9QBtZRWlueogzNqtYwChaQwPKvvYxbR1mhyZb
    dxX7t22D/XAfeHh7Rzbz+52xVzl+IpJY0fvB2mzqKnLHcUQiVjtUKTBfWamTaQrF
    uxbVUWF943FTZzbE8g/XgVgywEmqqF4beAL586uaAFW6egBArwF5oTYJEtonAsNW
    1ehlnPZc7P4KrviO6lyxKLc0oqSq1ZSIbGnHPvGvPqVoTqDzIn4DH5Zug+8Ikl55
    l0NKhBmCeMGFWQHxbXBDvWjw6/Rc04PkAd26874JJg3JhkSLuKHN09F+kBdYvt2V
    UybCK24we8cYBltQ9eAEUeW9TXHo1nVCGFVzrBWq4PoX6DXXmimgOvAtkK2W4Q6+
    HA2Xipx62hqqCecPPOsiR1pkiLH8W0HQFXY8Bf4ac7MlzL8DIHPAwNKLOz3ab1u1
    xY1CHTrvAesKiSOc4KY+E5J9hqrkHOf2d3IVGcTnn5cyDvu+YALAZv/bFEPJRfgY
    fBpBo7pAEAKhIGYd6g2ecEggCOIfLxJFDRQEJzphPN2wRy+gbkxRwAZJ/zqHlSSF
    yt+KWZ4N9mMlpvaJfwEw10Dgyt7M4jrk9WqTyAqWhDsHKsFb2qBoUGAKnXQhH/OO
    vSV4ssMoLRRu8MDFkBIOcERA/G+u2imjuXQv9dHzpxUdItZVWdTU8BF8GxaIQGhw
    GfwEodAgSDfPqPRioSURsjvmd0JIR8yzuw4y4B+non/yJ2E+zi5eIOPx+BB30G3G
    EodZxl1dv/OP0p219TzvXN0EYAtS28RHR7P9lZp5lCobsZVVvzHXlo9+IVxuNyJ0
    ed2lwad3I9doDp5djSVmytg+EYHEjI9g8UCuQV/TupXWjoRnOS+am5Hf1ut35B6J
    A8HiYBU7npEPYIgk/HHDikM9RQS1Gx46f4xiQy7Ke/GtbPMg26Tt1CvRny0nH3FR
    MP1Yz+q0rCWRH6XigiW+ozCQcr1yYsQJ6deyY6YCjlQ+PFTLDiQtvmj1UtnQuSi1
    D01BFgm3JqEdgQYm9l+TB6jXNpMTFS2bUgLxnRx6M65jieKm1cX/ZfwJfwnkZKiY
    CDS/c34z/mmc+izZ3XCXz6cux6DR7zXxUGU5W5+5cueLWtKnLgEIA1WfqY2mT6QR
    pAx/qZRQ7t6W3rIrrUO0UMYN5kivDuqcaODPqZ0/aLcrrjMP3hHs0MAcvF8+GEZs
    ob9lNSwhMue8oMhuTJ1vR4vs/0K7HJ5EsIp+LD7WPd7/UxwtK9L2u9WVow6+7s8p
    mCMGzuHczsSsdpKWgfq3to/FKpWYKJ8UkD397EKVio916yvGy7PPFJmuyyqIMENg
    TLPP9/H1W0JSD1KBxDMe2D4Cu1oMOHI86TA2lizcjaSuQ1vOQ49GoYsy6eX0lmMg
    G1XgJJa03CGNr1CFXwcYea6bGtG3ABMW2XYXq3LMtCV1pj/JPe+jrQZ4r8TR2Wiw
    G3Q3KGy481L+pI77LWJgoKhmqDYiJOVQCwdplQHRYKaKil63QQT56Hxqd7X87KgK
    -----END RSA PRIVATE KEY-----