mirror of
https://github.com/Geprivilegieerde-Anonimiteit-BV/XACrypto.git
synced 2026-08-21 13:36:21 -04:00
43 lines
1.1 KiB
Java
43 lines
1.1 KiB
Java
package de.caydenno1.xacrypto.hash.sha;
|
|
|
|
public class Shared {
|
|
public static byte[] INT2BYTE(int a,int b,int c,int d,int e) {
|
|
byte[] out = new byte[20];
|
|
write(a, out, 0);
|
|
write(b, out, 4);
|
|
write(c, out, 8);
|
|
write(d, out, 12);
|
|
write(e, out, 16);
|
|
return out;
|
|
}
|
|
|
|
public static void write(int v, byte[] o, int i) {
|
|
o[i ] = (byte)(v >>> 24);
|
|
o[i+1] = (byte)(v >>> 16);
|
|
o[i+2] = (byte)(v >>> 8);
|
|
o[i+3] = (byte)(v );
|
|
}
|
|
|
|
public static byte[] pad(byte[] mesg) {
|
|
int len = mesg.length;
|
|
long bit = (long) len * 8;
|
|
|
|
int padL = (64 - ((len + 9) % 64)) % 64;
|
|
byte[] o = new byte[len+padL+9];
|
|
|
|
System.arraycopy(mesg,0,o,0,len);
|
|
o[len] = (byte) 0x80;
|
|
for (int i = 0; i < 8; i++) {
|
|
o[o.length - (i+1)] = (byte) (bit >>> (8*i));
|
|
}
|
|
|
|
return o;
|
|
}
|
|
|
|
public static String hex(byte[] data) {
|
|
StringBuilder builder = new StringBuilder();
|
|
for (byte b : data) builder.append(String.format("%02x", b));
|
|
return builder.toString();
|
|
}
|
|
}
|