Итак, я искал вокруг какое-то время и не мог найти то, что мне нужно (так как каждый результат, который возникает, касается подписания фактического пакета). Таким образом, в основном то, что я делаю, заключается в том, что WebServices защищены с помощью диспетчера сеансов, и для того, чтобы получить номер сеанса, GUID необходимо отправить в WebService. На стороне iOS мы смогли получить эту настройку (поскольку команда, которая занималась разработкой WebService, имела там iOS-разработчика), но поскольку никто из этой команды или у нее не имеет большого опыта работы с Android, изо всех сил пытались понять как сделать то же самое. Ниже я попытался до сих пор, но созданный GUID состоит из некоторых странных символов и не работает, поэтому я застрял, пока я продолжаю искать другие варианты.Android Sign Data с сертификатом P12
String password = "password";
String text = "545048";
KeyStore keyStore = KeyStore.getInstance("pkcs12");
InputStream inputStream = activity.getResources().openRawResource(R.raw.am_client);
keyStore.load(inputStream, password.toCharArray());
String alias = keyStore.aliases().nextElement();
PrivateKey privateKey = (PrivateKey)keyStore.getKey(alias, password.toCharArray());
X509Certificate certificate = (X509Certificate)keyStore.getCertificate(alias);
//Sign Data
byte[] dataToSign = text.getBytes("UTF-8");
Signature signature1 = Signature.getInstance("SHA1WithRSA");
signature1.initSign(privateKey);
signature1.update(dataToSign);
byte[] signedData = signature1.sign();
String signed = new String(signedData, "UTF-8");
Log.d("MESSAGE", "string = " + signed);
//This is what comes up in the Log: ��m(N� �xp�r���K�V>G3b���M��W08���6#�͞�+�/�]�,�o���N"�$��uVa�ƾ�~��