/* * Copyright (c) 2011, 2012 Roberto Tyley * * This file is part of 'Agit' - an Android Git client. * * Agit is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * Agit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/ . */ package com.madgag.ssh.authagent.client.jsch; import android.os.RemoteException; import android.util.Log; import com.google.inject.Provider; import com.jcraft.jsch.Identity; import com.jcraft.jsch.JSchException; import com.madgag.ssh.android.authagent.AndroidAuthAgent; import net.schmizz.sshj.common.Buffer; public class SSHAgentIdentity implements Identity { private final String TAG = "SSHAgentIdentity"; private final Provider<AndroidAuthAgent> authAgentProvider; private final byte[] publicKey; private final String name; public SSHAgentIdentity(Provider<AndroidAuthAgent> authAgentProvider, byte[] publicKey, String name) { this.authAgentProvider = authAgentProvider; this.publicKey = publicKey; this.name = name; } public void clear() { } public boolean decrypt() { return false; } public String getAlgName() { return new Buffer.PlainBuffer(publicKey).readString(); } public String getName() { return name; } public byte[] getPublicKeyBlob() { return publicKey; } public byte[] getSignature(byte[] data) { try { return authAgentProvider.get().sign(publicKey, data); } catch (RemoteException e) { Log.e(TAG, "sign() failed", e); throw new RuntimeException(e); } } public boolean isEncrypted() { return false; } public boolean setPassphrase(byte[] passphrase) throws JSchException { return false; } }