package com.github.signed.tryanderror.sftp; import org.bouncycastle.jce.provider.BouncyCastleProvider; import java.math.BigInteger; import java.security.KeyFactory; import java.security.PublicKey; import java.security.spec.DSAPublicKeySpec; import java.security.spec.KeySpec; public class ServerDsaKeyFactory { public static final BigInteger y = new BigInteger("18226708153648715711288874856052985268113303959121736442781051674059176370996402024446715347011127200085029534002879241134794751792794374977362557950732424250028476206807864978099939804631704654672032856670483093723026555234069198194514575599154150815422312588086704804758323913258088757583867862120211692754"); public static final BigInteger p = new BigInteger("169681939708027790944661846904714852379361462648127669771054435709970244636023330464075771363639741799176245656362610906393475051074915187029090777848884285108353074118793606929636867806219447783707900195022671939556774784852768934498078014217821638033168613366966535532498666539726280024877551527822112757821"); public static final BigInteger q = new BigInteger("1322074206163278206825028169808530589813184389963"); public static final BigInteger g = new BigInteger("60300140882990912410847678092832826153739741326146732167996083167044227787908017715655778544971212345361787278649161124050108491159412866658592147238369664583814007701576363536594080820414541946989857244242273262755638195274761146731910475363368314302848413403090018971179671466673150272503410454506851181264"); public static PublicKey createTheServerkey() { try { KeyFactory dsa = KeyFactory.getInstance("DSA", new BouncyCastleProvider()); KeySpec spec = new DSAPublicKeySpec(y, p, q, g); return dsa.generatePublic(spec); } catch (Exception e) { throw new RuntimeException("should not happen"); } } }