问题描述
从这里下载源:https://developer.samsung.com/galaxy-watch-develop/samples/companion/hello-native.html
也在这里尝试过:https://developer.samsung.com/galaxy-watch-develop/samples/companion/security-native.html
但无法在 Tizen 和 Android 之间使用“安全”套接字。
下面是一些来自 Android 的有用日志(因为这部分似乎失败了):
2021-03-23 18:21:37.903 10288-10365/com.samsung.android.sdk.accessory.example.provider D/AccessoryProvider(P): onAuthenticationResponse
2021-03-23 18:21:37.909 10288-10365/com.samsung.android.sdk.accessory.example.provider D/AccessoryProvider(P): onAuthenticationResponse: matched=false,authToken.getKey().length=294,myAppKey.length=162
2021-03-23 18:21:37.910 10288-10365/com.samsung.android.sdk.accessory.example.provider I/[SA_SDK]SAAgentV2: onAuthenticationResponse() -> AUTHENTICATION_SUCCESS
中间是我的,问题是 SAP 给我的 authToken
与 myAppKey
不匹配。即使比较它们的尺寸也没有加工。
因此,如果您对什么是 authToken.getKey()
以及它是什么类型的密钥(长度为 294 字节)有任何想法,请告诉我。
myAppKey
是这样构造的:
Signature[] sigs = pkgInfo.signatures;
Log.d(TAG,"getApplicationCertificate,sigs[0].toByteArray().length=" + sigs[0].toByteArray().length); //481
CertificateFactory cf = CertificateFactory.getInstance("X.509");
ByteArrayInputStream stream = new ByteArrayInputStream(sigs[0].toByteArray());
X509Certificate x509cert = X509Certificate.getInstance(stream);
myAppKey = x509cert.getPublicKey().getEncoded();
Log.d(TAG,x509cert.getPublicKey().getEncoded().length=" + x509cert.getPublicKey().getEncoded().length); //162
解决方法
请使用以下链接下载安全示例应用。 https://developer.samsung.com/galaxy-watch-develop/samples/companion/security-native.html
并且请仔细检查用于构建 Tizen 和 Android 应用程序的作者证书是否相同。
,解决方案是完全重新安装 Tizen Certificate Manager。
在添加新配置文件时,并没有让我在 Tizen 或 Samsung 之间做出选择,只是出于某种奇怪的原因直接选择了 Tizen。因此,我无法从导入的 Android 作者证书生成作者证书。
重新安装后,按照SDK的指导,我成功了。