如何在 tizen 可穿戴网络应用程序中获取作者证书的 public 密钥?
How can I get public key of author certificate in tizen werable web app?
在我的 tizen werable web 应用程序(目标:tizen 2.3.2)中,我需要获取 public 的密钥SAP [Samsung Accessory Protocol] 身份验证实现中配对智能手机应用程序检查令牌的作者证书(用于签名应用程序)。
可穿戴应用程序和智能手机应用程序 (android) 使用相同的密钥库进行签名。
是否可以通过 packageManager API 或类似的方式实现?
var myAppSigCert = "";//I NEED THIS ONE
SAAgent.authenticatePeerAgent(peerAgent,
function(peerAgent, authToken){
if (authToken.key === myAppSigCert ) {
alert("Service connection request accepted: " + peerAgent.appName);
SAAgent.acceptServiceConnectionRequest(peerAgent);
}else{
alert("Service connection request REJECT: " + peerAgent.appName);
SAAgent.rejectServiceConnectionRequest(peerAgent);
}
});
作者证书有助于维护 Tizen Gear 应用程序和 Android 之间的安全对等身份验证
移动应用。证书扩展 SDK 支持基于 Android 密钥库文件创建 Tizen 作者证书。
使用以下方法创建 Gear 作者证书的教程
Android 密钥库 >> 附录 D
创建证书后,您可以从您的机器上找到作者证书的 public 密钥,
/tizen-sdk-data/keystore/author-name/author
像
一样在你的代码中使用它
// from sample app
var authTokenKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhO5x67wRt3Ni5A4n+HBbAczE6p8lAEgnywXInIUMKuCDSaEpM3EwYE6GUGACDbAoCx7EBTS54XbLWrnz10XZAKZyMoQidI+JWiSwlNYOxGlfHJgxVEExr2ZmlKVYedQxlGZNsLjGziYW0Y6UIXmDOeDA1b4g7Grbx0vS1BXC3Mv8s/8zlAl3NPj6BU1mh2hWKJL9+eDaM3bmYK1JJ9jbLlIzCsl0fZ4kR1xlSToZDBk53LxO0n1ekUpsEmMbFcmj1KKGQQn6A+ej0s5iOlXz6dgDfg4PxoTnlutwLOilz4zJLySZA6o3jG2kYls6ZBEjaz9ZeHxQlEV9PKh/Vgq8wwIDAQAB"
/* Authentication of requesting peer agent */
if (typeof(SAAgent.authenticatePeerAgent) === 'function') {
SAAgent.authenticatePeerAgent(
peerAgent,
function (peerAgent, authToken) {
/* Authentication token of peer agent arrives */
if (authToken.key === authTokenKey) {
SAAgent.acceptServiceConnectionRequest(peerAgent);
createHTML("Service connection request accepted via authenticatePeerAgent");
} else {
SAAgent.rejectServiceConnectionRequest(peerAgent);
createHTML("Service connection request rejected via authenticatePeerAgent");
}
},
function (e) {
/* Error handling */
SAAgent.rejectServiceConnectionRequest(peerAgent);
createHTML("Service connection request rejected due to error:<br />" +
"Error name : " + e.name + "<br />" +
"Error message : " + e.message);
}
);
}
找到 SAP 的 sample app。
找到。首先在 Web 应用程序的 config.xml 中添加 CERTIFICATE 特权:
<tizen:privilege name="http://tizen.org/privilege/appmanager.certificate"/>
然后只需调用tizen.application:
的getAppCert方法
var appCerts = tizen.application.getAppCerts(null);
for (var i = 0; i < appCerts.length; i++) {
console.log("#" + i + " type:" + appCerts[i].type);
console.log("#" + i + " value:" + appCerts[i].value);
}
appmanager.certificate 权限需要签署 AuthorCertificate 级别才能使用 PARTNER , 对于 PUBLIC AuthorCertificate 它 return 在应用程序安装期间出现此异常:
- [MISMATCHED_PRIVILEGE_LEVEL]Signature Level is too low to use http://tizen.org/privilege/appmanager.certificate - Signature Level = public, Privilege Level = partner
有关 Tizen 权限的更多信息,请参见此处:
https://www.tizen.org/tv/privilege
关于权限安全系统的信息:
https://developer.tizen.org/dev-guide/2.4/org.tizen.gettingstarted/html/web/details/sec_privileges_w.htm
在我的 tizen werable web 应用程序(目标:tizen 2.3.2)中,我需要获取 public 的密钥SAP [Samsung Accessory Protocol] 身份验证实现中配对智能手机应用程序检查令牌的作者证书(用于签名应用程序)。
可穿戴应用程序和智能手机应用程序 (android) 使用相同的密钥库进行签名。
是否可以通过 packageManager API 或类似的方式实现?
var myAppSigCert = "";//I NEED THIS ONE
SAAgent.authenticatePeerAgent(peerAgent,
function(peerAgent, authToken){
if (authToken.key === myAppSigCert ) {
alert("Service connection request accepted: " + peerAgent.appName);
SAAgent.acceptServiceConnectionRequest(peerAgent);
}else{
alert("Service connection request REJECT: " + peerAgent.appName);
SAAgent.rejectServiceConnectionRequest(peerAgent);
}
});
作者证书有助于维护 Tizen Gear 应用程序和 Android 之间的安全对等身份验证 移动应用。证书扩展 SDK 支持基于 Android 密钥库文件创建 Tizen 作者证书。
使用以下方法创建 Gear 作者证书的教程 Android 密钥库 >> 附录 D
创建证书后,您可以从您的机器上找到作者证书的 public 密钥,
/tizen-sdk-data/keystore/author-name/author
像
一样在你的代码中使用它// from sample app
var authTokenKey = "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAhO5x67wRt3Ni5A4n+HBbAczE6p8lAEgnywXInIUMKuCDSaEpM3EwYE6GUGACDbAoCx7EBTS54XbLWrnz10XZAKZyMoQidI+JWiSwlNYOxGlfHJgxVEExr2ZmlKVYedQxlGZNsLjGziYW0Y6UIXmDOeDA1b4g7Grbx0vS1BXC3Mv8s/8zlAl3NPj6BU1mh2hWKJL9+eDaM3bmYK1JJ9jbLlIzCsl0fZ4kR1xlSToZDBk53LxO0n1ekUpsEmMbFcmj1KKGQQn6A+ej0s5iOlXz6dgDfg4PxoTnlutwLOilz4zJLySZA6o3jG2kYls6ZBEjaz9ZeHxQlEV9PKh/Vgq8wwIDAQAB"
/* Authentication of requesting peer agent */
if (typeof(SAAgent.authenticatePeerAgent) === 'function') {
SAAgent.authenticatePeerAgent(
peerAgent,
function (peerAgent, authToken) {
/* Authentication token of peer agent arrives */
if (authToken.key === authTokenKey) {
SAAgent.acceptServiceConnectionRequest(peerAgent);
createHTML("Service connection request accepted via authenticatePeerAgent");
} else {
SAAgent.rejectServiceConnectionRequest(peerAgent);
createHTML("Service connection request rejected via authenticatePeerAgent");
}
},
function (e) {
/* Error handling */
SAAgent.rejectServiceConnectionRequest(peerAgent);
createHTML("Service connection request rejected due to error:<br />" +
"Error name : " + e.name + "<br />" +
"Error message : " + e.message);
}
);
}
找到 SAP 的 sample app。
找到。首先在 Web 应用程序的 config.xml 中添加 CERTIFICATE 特权:
<tizen:privilege name="http://tizen.org/privilege/appmanager.certificate"/>
然后只需调用tizen.application:
的getAppCert方法var appCerts = tizen.application.getAppCerts(null);
for (var i = 0; i < appCerts.length; i++) {
console.log("#" + i + " type:" + appCerts[i].type);
console.log("#" + i + " value:" + appCerts[i].value);
}
appmanager.certificate 权限需要签署 AuthorCertificate 级别才能使用 PARTNER , 对于 PUBLIC AuthorCertificate 它 return 在应用程序安装期间出现此异常:
- [MISMATCHED_PRIVILEGE_LEVEL]Signature Level is too low to use http://tizen.org/privilege/appmanager.certificate - Signature Level = public, Privilege Level = partner
有关 Tizen 权限的更多信息,请参见此处: https://www.tizen.org/tv/privilege
关于权限安全系统的信息: https://developer.tizen.org/dev-guide/2.4/org.tizen.gettingstarted/html/web/details/sec_privileges_w.htm