
com.googlecode.d2j.signapk.TinySignImpl Maven / Gradle / Ivy
package com.googlecode.d2j.signapk;
import java.io.IOException;
import java.io.OutputStream;
import java.security.KeyFactory;
import java.security.NoSuchAlgorithmException;
import java.security.PrivateKey;
import java.security.spec.InvalidKeySpecException;
import java.security.spec.PKCS8EncodedKeySpec;
/**
* get from
* https://code.google.com/p/tiny-sign/source/browse/src/main/java/pxb/android
* /tinysign/TinySign.java
*
* @author bob
*/
public final class TinySignImpl extends AbstractJarSign {
private static PrivateKey buildPrivateKey() {
PrivateKey privateKey;
try {
privateKey = KeyFactory.getInstance("RSA").generatePrivate(
new PKCS8EncodedKeySpec(Base64.decode(S_PRIVATE_KEY, 0)));
} catch (InvalidKeySpecException | NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
return privateKey;
}
public TinySignImpl() {
super(buildPrivateKey(), "SHA1", "SHA1withRSA");
}
private static final String S_PRIVATE_KEY =
"MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAoiZSqWnFDHA5sXKoDiUUO9JuL7cm/2dCck5MKumVvv"
+ "+WfSg0jsovnywsFN0pifmdRSLmOdUkh0d0J"
+ "+tOnSgtsQIDAQABAkEAihag5u3Qhds9BsViIUmqhZebhr8vUuqZR8cuTo1GnbSoOHIPbAgD3J8TDbC"
+ "/CVqae8NrgwLp325Pem1Tuof/0QIhAN1hqft1K307bsljgw3iYKopGVZBHRXsjRnNL4edV9QrAiEAu4F"
+ "+XtS1wohGLz5QtfuMFsQNo4l31mCjt6WpBDmSi5MCIQCB++YijxmJ3mueM5"
+ "+vd0vqnVcTHghF5y6yB5fwuKHpIQIgInnS1Hjj2prX3MPmby+LOHxfzZvvDtnCAHhTNVWonkUCIQCvV8l+SpL6Vh1nQ"
+ "/2EKFJo2dbZB3wKG/BEYsFkPFbn9w==";
private static final String S_SIG_PREFIX =
"MIIB5gYJKoZIhvcNAQcCoIIB1zCCAdMCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCCATYwggEyMIHdoAMCAQICBCun"
+ "MokwDQYJKoZIhvcNAQELBQAwDzENMAsGA1UEAxMEVGVzdDAeFw0xMjA0MjIwODQ1NDdaFw0xMzA0MjIwODQ1NDdaMA8xDTAL"
+ "BgNVBAMTBFRlc3QwXDANBgkqhkiG9w0BAQEFAANLADBIAkEAoiZSqWnFDHA5sXKoDiUUO9JuL7cm/2dCck5MKumVvv+WfSg0"
+ "jsovnywsFN0pifmdRSLmOdUkh0d0J+tOnSgtsQIDAQABoyEwHzAdBgNVHQ4EFgQUVL2yOinUwpARE1tOPxc1bf4WrTgwDQY"
+ "JKoZIhvcNAQELBQADQQAnj/eZwhqwb2tgSYNvgRo5bBNNCpJbQ4alEeP/MLSIWf2nZpAix8T3oS9X2affQtAgctPATcKQa"
+ "iH2B4L7FKlVMXoweAIBATAXMA8xDTALBgNVBAMTBFRlc3QCBCunMokwCQYFKw4DAhoFADANBgkqhkiG9w0BAQEFAARA";
@Override
protected void writeSignatureBlock(byte[] signature, OutputStream out) throws IOException {
out.write(Base64.decode(S_SIG_PREFIX, 0));
out.write(signature);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy