forked from Qortal/qortal
Browse Source
+ minor whitespace / comment / JAXB mods Was commit e14381d: working on genesis blocksplit-DB
catbref
5 years ago
6 changed files with 70 additions and 114 deletions
@ -1,103 +0,0 @@
|
||||
package org.qora; |
||||
|
||||
import java.io.IOException; |
||||
import java.io.InputStream; |
||||
import java.net.HttpURLConnection; |
||||
import java.net.MalformedURLException; |
||||
import java.net.Socket; |
||||
import java.net.URL; |
||||
import java.nio.file.Files; |
||||
import java.nio.file.Path; |
||||
import java.nio.file.StandardCopyOption; |
||||
import java.security.Security; |
||||
import java.util.Collections; |
||||
|
||||
import javax.net.ssl.HttpsURLConnection; |
||||
import javax.net.ssl.SNIHostName; |
||||
import javax.net.ssl.SNIServerName; |
||||
import javax.net.ssl.SSLParameters; |
||||
import javax.net.ssl.SSLSocket; |
||||
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider; |
||||
import org.bouncycastle.jsse.provider.BouncyCastleJsseProvider; |
||||
|
||||
public class HttpsTest { |
||||
|
||||
public static void main(String argv[]) throws IOException { |
||||
Security.insertProviderAt(new BouncyCastleProvider(), 0); |
||||
Security.insertProviderAt(new BouncyCastleJsseProvider(), 1); |
||||
|
||||
final String uri = "https://github.com/bcgit/bc-java/raw/02d0a89fed488ca65de08afc955dfe7432af5f50/libs/activation.jar"; |
||||
|
||||
InputStream in = fetchStream(uri); |
||||
if (in == null) { |
||||
System.err.println(String.format("Failed to fetch from %s", uri)); |
||||
return; |
||||
} |
||||
|
||||
Path tmpPath = null; |
||||
try { |
||||
// Save input stream into temporary file
|
||||
tmpPath = Files.createTempFile(null, null); |
||||
Files.copy(in, tmpPath, StandardCopyOption.REPLACE_EXISTING); |
||||
} catch (IOException e) { |
||||
System.err.println(String.format("Failed to save %s", uri)); |
||||
} finally { |
||||
if (tmpPath != null) |
||||
try { |
||||
Files.deleteIfExists(tmpPath); |
||||
} catch (IOException e) { |
||||
// We tried...
|
||||
} |
||||
} |
||||
} |
||||
|
||||
public static InputStream fetchStream(String uri) throws IOException { |
||||
try { |
||||
URL url = new URL(uri); |
||||
HttpURLConnection con = (HttpURLConnection) url.openConnection(); |
||||
|
||||
con.setRequestMethod("GET"); |
||||
con.setConnectTimeout(5000); |
||||
con.setReadTimeout(5000); |
||||
setConnectionSSL(con); |
||||
|
||||
int status = con.getResponseCode(); |
||||
|
||||
if (status != 200) |
||||
return null; |
||||
|
||||
return con.getInputStream(); |
||||
} catch (MalformedURLException e) { |
||||
throw new RuntimeException("Malformed API request", e); |
||||
} |
||||
} |
||||
|
||||
public static void setConnectionSSL(HttpURLConnection con) { |
||||
if (!(con instanceof HttpsURLConnection)) |
||||
return; |
||||
|
||||
HttpsURLConnection httpsCon = (HttpsURLConnection) con; |
||||
URL url = con.getURL(); |
||||
|
||||
httpsCon.setSSLSocketFactory(new org.bouncycastle.jsse.util.CustomSSLSocketFactory(httpsCon.getSSLSocketFactory()) { |
||||
@Override |
||||
protected Socket configureSocket(Socket s) { |
||||
if (s instanceof SSLSocket) { |
||||
SSLSocket ssl = (SSLSocket) s; |
||||
|
||||
SNIHostName sniHostName = new SNIHostName(url.getHost()); |
||||
if (null != sniHostName) { |
||||
SSLParameters sslParameters = new SSLParameters(); |
||||
|
||||
sslParameters.setServerNames(Collections.<SNIServerName>singletonList(sniHostName)); |
||||
ssl.setSSLParameters(sslParameters); |
||||
} |
||||
} |
||||
|
||||
return s; |
||||
} |
||||
}); |
||||
} |
||||
|
||||
} |
@ -0,0 +1,37 @@
|
||||
package org.qora; |
||||
|
||||
import java.io.IOException; |
||||
import java.security.SecureRandom; |
||||
import java.security.Security; |
||||
import java.util.Random; |
||||
|
||||
import org.bouncycastle.jce.provider.BouncyCastleProvider; |
||||
import org.bouncycastle.jsse.provider.BouncyCastleJsseProvider; |
||||
import org.qora.account.PrivateKeyAccount; |
||||
import org.qora.utils.Base58; |
||||
|
||||
public class VanityGen { |
||||
|
||||
public static void main(String argv[]) throws IOException { |
||||
if (argv.length != 1) { |
||||
System.err.println("Usage: Vanitygen <leading-chars>"); |
||||
System.err.println("Example: VanityGen Qcat"); |
||||
return; |
||||
} |
||||
|
||||
Security.insertProviderAt(new BouncyCastleProvider(), 0); |
||||
Security.insertProviderAt(new BouncyCastleJsseProvider(), 1); |
||||
|
||||
Random random = new SecureRandom(); |
||||
byte[] seed = new byte[32]; |
||||
|
||||
while (true) { |
||||
random.nextBytes(seed); |
||||
PrivateKeyAccount account = new PrivateKeyAccount(null, seed); |
||||
|
||||
if (account.getAddress().startsWith(argv[0])) |
||||
System.out.println(String.format("Address: %s, public key: %s, private key: %s", account.getAddress(), Base58.encode(account.getPublicKey()), Base58.encode(seed))); |
||||
} |
||||
} |
||||
|
||||
} |
Loading…
Reference in new issue