APK反编译源代码展示 - 南明离火平台提供

应用版本信息
应用名称:SUWAS SSH VPN
版本号:3.0
包名称:suwas.vpn.inject

MD5 校验值:1fc9c7d9bea45dd359a8e0644d6972ec

反编译源代码说明

GenericDhExchange.java 文件包含反编译后的源代码,请注意,该内容仅供学习和参考使用,不得用于非法用途。


package com.trilead.ssh2.crypto.dh;

import com.trilead.ssh2.c.a;
import com.trilead.ssh2.crypto.digest.HashForSSH2Types;
import java.math.BigInteger;

public abstract class GenericDhExchange {

    private static final a f3076b = a.a(GenericDhExchange.class);

    BigInteger f3077a;

    public static GenericDhExchange b(String str) {
        return str.startsWith("curve25519-sha256@libssh.org") ? new Curve25519Exchange() : str.startsWith("ecdh-sha2-") ? new EcDhExchange() : new DhExchange();
    }

    public abstract void a(String str);

    public abstract void a(byte[] bArr);

    public abstract byte[] a();

    public byte[] a(byte[] bArr, byte[] bArr2, byte[] bArr3, byte[] bArr4, byte[] bArr5) {
        HashForSSH2Types hashForSSH2Types = new HashForSSH2Types(c());
        if (f3076b.a()) {
            f3076b.a(90, "Client: '" + new String(bArr, "ISO-8859-1") + "'");
            f3076b.a(90, "Server: '" + new String(bArr2, "ISO-8859-1") + "'");
        }
        hashForSSH2Types.b(bArr);
        hashForSSH2Types.b(bArr2);
        hashForSSH2Types.b(bArr3);
        hashForSSH2Types.b(bArr4);
        hashForSSH2Types.b(bArr5);
        hashForSSH2Types.b(a());
        hashForSSH2Types.b(b());
        hashForSSH2Types.a(this.f3077a);
        return hashForSSH2Types.c();
    }

    protected abstract byte[] b();

    public abstract String c();

    public BigInteger d() {
        if (this.f3077a == null) {
            throw new IllegalStateException("Shared secret not yet known, need f first!");
        }
        return this.f3077a;
    }
}