-
Notifications
You must be signed in to change notification settings - Fork 0
/
gen.sh
executable file
·64 lines (49 loc) · 1.23 KB
/
gen.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/bin/bash
kp=android
alias=key
keysize=512
current=`pwd`
#RSA-keysize signature-length
# 512 64
# 1024 128
# 2048 256
mkdir -p .tmp
rm -rf .tmp/ks
keytool -genkeypair -dname "CN=Test" -keyalg RSA -keysize $keysize -keystore .tmp/ks -keypass $kp -validity 365 -storepass $kp -alias $alias
privateKey=`java -cp ~/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar:target/test-classes pxb.android.tinysign.gen.PrivateKey .tmp/ks $kp $alias $kp`
cd .tmp
echo "qwert" > tmp.txt
rm -rf a.jar > /dev/null
jar cfM a.jar tmp.txt > /dev/null
jarsigner -sigalg sha1withrsa -digestalg sha1 -keystore ks -storepass $kp a.jar $alias
rm -rf META-INF/${alias^^}.RSA
jar xf a.jar > /dev/null
set -- `du -b META-INF/${alias^^}.RSA`
size=$1
sigsize=0
case $keysize in
512)
sigsize=64
;;
1024)
sigsize=128
;;
2048)
sigsize=256
;;
*)
echo "not support keysize $keysize"
exit -1
;;
esac
sigPrefix=`dd if=META-INF/${alias^^}.RSA bs=1 count=$(($size-$sigsize)) | base64 -w 0`
cd $current
echo "
// generated by script gen.sh
package pxb.android.tinysign;
public interface Constants {
String privateKey = \"$privateKey\";
String sigPrefix = \"$sigPrefix\";
}
" > src/main/java/pxb/android/tinysign/Constants.java
echo Done.