mirror of
https://github.com/moparisthebest/ImageDownloader
synced 2024-11-22 01:02:16 -05:00
Remove maven and java
This commit is contained in:
parent
ab577eccef
commit
168e77099c
65
pom.xml
65
pom.xml
@ -1,65 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
|
|
||||||
<groupId>eu.siacs.conversations</groupId>
|
|
||||||
<artifactId>ImageDownloader</artifactId>
|
|
||||||
<version>0.1</version>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.bouncycastle</groupId>
|
|
||||||
<artifactId>bcprov-jdk15on</artifactId>
|
|
||||||
<version>1.54</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-shade-plugin</artifactId>
|
|
||||||
<version>2.4.3</version>
|
|
||||||
<executions>
|
|
||||||
<execution>
|
|
||||||
<phase>package</phase>
|
|
||||||
<goals>
|
|
||||||
<goal>shade</goal>
|
|
||||||
</goals>
|
|
||||||
<configuration>
|
|
||||||
<filters>
|
|
||||||
<filter>
|
|
||||||
<artifact>*:*</artifact>
|
|
||||||
<excludes>
|
|
||||||
<exclude>META-INF/*.SF</exclude>
|
|
||||||
<exclude>META-INF/*.DSA</exclude>
|
|
||||||
<exclude>META-INF/*.RSA</exclude>
|
|
||||||
</excludes>
|
|
||||||
</filter>
|
|
||||||
</filters>
|
|
||||||
<transformers>
|
|
||||||
<transformer
|
|
||||||
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
|
|
||||||
<mainClass>eu.siacs.conversations.Downloader</mainClass>
|
|
||||||
</transformer>
|
|
||||||
<transformer
|
|
||||||
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
|
|
||||||
</transformers>
|
|
||||||
</configuration>
|
|
||||||
</execution>
|
|
||||||
</executions>
|
|
||||||
</plugin>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>3.3</version>
|
|
||||||
<configuration>
|
|
||||||
<source>7</source>
|
|
||||||
<target>7</target>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
</project>
|
|
@ -1,62 +0,0 @@
|
|||||||
package eu.siacs.conversations;
|
|
||||||
|
|
||||||
import org.bouncycastle.crypto.engines.AESEngine;
|
|
||||||
import org.bouncycastle.crypto.io.CipherOutputStream;
|
|
||||||
import org.bouncycastle.crypto.modes.AEADBlockCipher;
|
|
||||||
import org.bouncycastle.crypto.modes.GCMBlockCipher;
|
|
||||||
import org.bouncycastle.crypto.params.AEADParameters;
|
|
||||||
import org.bouncycastle.crypto.params.KeyParameter;
|
|
||||||
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.OutputStream;
|
|
||||||
import java.io.PrintStream;
|
|
||||||
import java.net.HttpURLConnection;
|
|
||||||
import java.net.URL;
|
|
||||||
|
|
||||||
public class Downloader {
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
if (args.length != 1) {
|
|
||||||
System.err.println("Usage: java -jar ImageDownloader.jar https://url.tld/filename#C0FFEBABE");
|
|
||||||
} else {
|
|
||||||
try {
|
|
||||||
final URL url = new URL(args[0]);
|
|
||||||
OutputStream os = setupOutputStream(new PrintStream(System.out), url.getRef());
|
|
||||||
final HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
|
||||||
InputStream inputStream = connection.getInputStream();
|
|
||||||
connection.connect();
|
|
||||||
byte[] buffer = new byte[4096];
|
|
||||||
int count;
|
|
||||||
while ((count = inputStream.read(buffer)) != -1) {
|
|
||||||
os.write(buffer, 0, count);
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
System.err.println("could not connect to host "+e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static OutputStream setupOutputStream(OutputStream os, String reference) {
|
|
||||||
if (reference != null && reference.length() == 96) {
|
|
||||||
byte[] keyAndIv = hexToBytes(reference);
|
|
||||||
byte[] key = new byte[32];
|
|
||||||
byte[] iv = new byte[16];
|
|
||||||
System.arraycopy(keyAndIv, 0, iv, 0, 16);
|
|
||||||
System.arraycopy(keyAndIv, 16, key, 0, 32);
|
|
||||||
AEADBlockCipher cipher = new GCMBlockCipher(new AESEngine());
|
|
||||||
cipher.init(false, new AEADParameters(new KeyParameter(key), 128, iv));
|
|
||||||
return new CipherOutputStream(os, cipher);
|
|
||||||
} else {
|
|
||||||
return os;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static byte[] hexToBytes(String hex) {
|
|
||||||
int len = hex.length();
|
|
||||||
byte[] array = new byte[len / 2];
|
|
||||||
for (int i = 0; i < len; i += 2) {
|
|
||||||
array[i / 2] = (byte) ((Character.digit(hex.charAt(i), 16) << 4) + Character.digit(hex.charAt(i + 1), 16));
|
|
||||||
}
|
|
||||||
return array;
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user