Files
ct-dtv-hx0100-002kwos/procentric/application/referece/hcap_js_extension-1.24.6.5901/doc/symbols/hcap.security.html
sysadmin ff2a3c305b issue #1
Add 1st PTC Hotel APP codes
2022-04-21 10:46:16 +09:00

1348 lines
57 KiB
HTML
Executable File

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="generator" content="JsDoc Toolkit" />
<title>hcap.security | JsDoc Reference</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<meta name="mobileoptimized" content="0" />
<link rel="stylesheet" href="../css/all.css" media="all" />
<link rel="stylesheet" href="../css/handheld.css" media="only screen and (max-width: 660px)" />
<link rel="stylesheet" href="../css/handheld.css" media="handheld" />
<link rel="stylesheet" href="../css/screen.css" media="screen and (min-width: 661px)" />
<link rel="stylesheet" href="../javascript/highlighter/dessert.css" />
<script src="../javascript/all.js"></script>
<!--[if lt IE 9]>
<script src="../javascript/html5.js"></script>
<![endif]-->
</head>
<body>
<div class="index">
<div class="menu">
<div class="indexLinks">
<a href="../index.html">Classes</a>
<a href="../files.html">Files</a>
</div>
<table width=100% class=confidential><tr><td><b>LGE Confidential</b></td></tr></table>
<h2 class="heading1">Library</h2>
<table>
<tr>
<td align=left class=confidential><a href="../../js/hcap.js">&middot;hcap.js (1.24.6.5901)</li></a></td>
</tr>
</table>
<h2 class="heading1">Classes</h2>
<input type="text" name="classFilter" class="classFilter" id="ClassFilter" placeholder="Filter"></input>
<nav>
<ul class="classList" id="ClassList">
<li><a href="../symbols/_global_.html">_global_</a></li>
<li><a href="../symbols/hcap.html">hcap</a></li>
<li><a href="../symbols/hcap.application.html">hcap<span class='break'> </span>.<span class='break'> </span>application</a></li>
<li><a href="../symbols/hcap.beacon.html">hcap<span class='break'> </span>.<span class='break'> </span>beacon</a></li>
<li><a href="../symbols/hcap.bluetooth.html">hcap<span class='break'> </span>.<span class='break'> </span>bluetooth</a></li>
<li><a href="../symbols/hcap.bluetooth.audio.html">hcap<span class='break'> </span>.<span class='break'> </span>bluetooth<span class='break'> </span>.<span class='break'> </span>audio</a></li>
<li><a href="../symbols/hcap.camera.html">hcap<span class='break'> </span>.<span class='break'> </span>camera</a></li>
<li><a href="../symbols/hcap.carousel.html">hcap<span class='break'> </span>.<span class='break'> </span>carousel</a></li>
<li><a href="../symbols/hcap.channel.html">hcap<span class='break'> </span>.<span class='break'> </span>channel</a></li>
<li><a href="../symbols/hcap.channel.AudioStreamType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>AudioStreamType</a></li>
<li><a href="../symbols/hcap.channel.ChannelStatus.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>ChannelStatus</a></li>
<li><a href="../symbols/hcap.channel.ChannelType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>ChannelType</a></li>
<li><a href="../symbols/hcap.channel.InbandDataServiceType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>InbandDataServiceType</a></li>
<li><a href="../symbols/hcap.channel.IpBroadcastType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>IpBroadcastType</a></li>
<li><a href="../symbols/hcap.channel.Polarization.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>Polarization</a></li>
<li><a href="../symbols/hcap.channel.RfBroadcastType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>RfBroadcastType</a></li>
<li><a href="../symbols/hcap.channel.VideoStreamType.html">hcap<span class='break'> </span>.<span class='break'> </span>channel<span class='break'> </span>.<span class='break'> </span>VideoStreamType</a></li>
<li><a href="../symbols/hcap.checkout.html">hcap<span class='break'> </span>.<span class='break'> </span>checkout</a></li>
<li><a href="../symbols/hcap.externalinput.html">hcap<span class='break'> </span>.<span class='break'> </span>externalinput</a></li>
<li><a href="../symbols/hcap.externalinput.ExternalInputType.html">hcap<span class='break'> </span>.<span class='break'> </span>externalinput<span class='break'> </span>.<span class='break'> </span>ExternalInputType</a></li>
<li><a href="../symbols/hcap.file.html">hcap<span class='break'> </span>.<span class='break'> </span>file</a></li>
<li><a href="../symbols/hcap.iot.html">hcap<span class='break'> </span>.<span class='break'> </span>iot</a></li>
<li><a href="../symbols/hcap.key.html">hcap<span class='break'> </span>.<span class='break'> </span>key</a></li>
<li><a href="../symbols/hcap.key.Code.html">hcap<span class='break'> </span>.<span class='break'> </span>key<span class='break'> </span>.<span class='break'> </span>Code</a></li>
<li><a href="../symbols/hcap.Media.html">hcap<span class='break'> </span>.<span class='break'> </span>Media</a></li>
<li><a href="../symbols/hcap.Media.SubtitleType.html">hcap<span class='break'> </span>.<span class='break'> </span>Media<span class='break'> </span>.<span class='break'> </span>SubtitleType</a></li>
<li><a href="../symbols/hcap.mode.html">hcap<span class='break'> </span>.<span class='break'> </span>mode</a></li>
<li><a href="../symbols/hcap.mouse.html">hcap<span class='break'> </span>.<span class='break'> </span>mouse</a></li>
<li><a href="../symbols/hcap.mpi.html">hcap<span class='break'> </span>.<span class='break'> </span>mpi</a></li>
<li><a href="../symbols/hcap.network.html">hcap<span class='break'> </span>.<span class='break'> </span>network</a></li>
<li><a href="../symbols/hcap.network.DhcpState.html">hcap<span class='break'> </span>.<span class='break'> </span>network<span class='break'> </span>.<span class='break'> </span>DhcpState</a></li>
<li><a href="../symbols/hcap.network.NetworkEventType.html">hcap<span class='break'> </span>.<span class='break'> </span>network<span class='break'> </span>.<span class='break'> </span>NetworkEventType</a></li>
<li><a href="../symbols/hcap.network.NetworkMode.html">hcap<span class='break'> </span>.<span class='break'> </span>network<span class='break'> </span>.<span class='break'> </span>NetworkMode</a></li>
<li><a href="../symbols/hcap.network.WifiSecurityType.html">hcap<span class='break'> </span>.<span class='break'> </span>network<span class='break'> </span>.<span class='break'> </span>WifiSecurityType</a></li>
<li><a href="../symbols/hcap.network.WirelessMode.html">hcap<span class='break'> </span>.<span class='break'> </span>network<span class='break'> </span>.<span class='break'> </span>WirelessMode</a></li>
<li><a href="../symbols/hcap.power.html">hcap<span class='break'> </span>.<span class='break'> </span>power</a></li>
<li><a href="../symbols/hcap.power.PowerMode.html">hcap<span class='break'> </span>.<span class='break'> </span>power<span class='break'> </span>.<span class='break'> </span>PowerMode</a></li>
<li><a href="../symbols/hcap.preloadedApplication.html">hcap<span class='break'> </span>.<span class='break'> </span>preloadedApplication</a></li>
<li><a href="../symbols/hcap.property.html">hcap<span class='break'> </span>.<span class='break'> </span>property</a></li>
<li><a href="../symbols/hcap.property.InstallerMenuItem.html">hcap<span class='break'> </span>.<span class='break'> </span>property<span class='break'> </span>.<span class='break'> </span>InstallerMenuItem</a></li>
<li><a href="../symbols/hcap.property.PictureMode.html">hcap<span class='break'> </span>.<span class='break'> </span>property<span class='break'> </span>.<span class='break'> </span>PictureMode</a></li>
<li><a href="../symbols/hcap.property.PicturePropertyKey.html">hcap<span class='break'> </span>.<span class='break'> </span>property<span class='break'> </span>.<span class='break'> </span>PicturePropertyKey</a></li>
<li><a href="../symbols/hcap.rms.html">hcap<span class='break'> </span>.<span class='break'> </span>rms</a></li>
<li><a href="../symbols/hcap.rs232c.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c</a></li>
<li><a href="../symbols/hcap.rs232c.BaudRate.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c<span class='break'> </span>.<span class='break'> </span>BaudRate</a></li>
<li><a href="../symbols/hcap.rs232c.DataBit.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c<span class='break'> </span>.<span class='break'> </span>DataBit</a></li>
<li><a href="../symbols/hcap.rs232c.FlowControl.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c<span class='break'> </span>.<span class='break'> </span>FlowControl</a></li>
<li><a href="../symbols/hcap.rs232c.Parity.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c<span class='break'> </span>.<span class='break'> </span>Parity</a></li>
<li><a href="../symbols/hcap.rs232c.StopBit.html">hcap<span class='break'> </span>.<span class='break'> </span>rs232c<span class='break'> </span>.<span class='break'> </span>StopBit</a></li>
<li><a href="../symbols/hcap.security.html">hcap<span class='break'> </span>.<span class='break'> </span>security</a></li>
<li><a href="../symbols/hcap.socket.html">hcap<span class='break'> </span>.<span class='break'> </span>socket</a></li>
<li><a href="../symbols/hcap.speech.html">hcap<span class='break'> </span>.<span class='break'> </span>speech</a></li>
<li><a href="../symbols/hcap.speech.HostType.html">hcap<span class='break'> </span>.<span class='break'> </span>speech<span class='break'> </span>.<span class='break'> </span>HostType</a></li>
<li><a href="../symbols/hcap.system.html">hcap<span class='break'> </span>.<span class='break'> </span>system</a></li>
<li><a href="../symbols/hcap.system.SoundOutputType.html">hcap<span class='break'> </span>.<span class='break'> </span>system<span class='break'> </span>.<span class='break'> </span>SoundOutputType</a></li>
<li><a href="../symbols/hcap.time.html">hcap<span class='break'> </span>.<span class='break'> </span>time</a></li>
<li><a href="../symbols/hcap.video.html">hcap<span class='break'> </span>.<span class='break'> </span>video</a></li>
<li><a href="../symbols/hcap.volume.html">hcap<span class='break'> </span>.<span class='break'> </span>volume</a></li>
<li><a href="../symbols/hcap.webrtc.html">hcap<span class='break'> </span>.<span class='break'> </span>webrtc</a></li>
</ul>
</nav>
</div>
<div class="fineprint" style="clear:both">
<footer>
Documentation generator: <a href="http://code.google.com/p/jsdoc-toolkit/" target="_blank">JsDoc Toolkit</a> 2.4.0<br />
Template: <a href="http://www.thebrightlines.com/2010/05/06/new-template-for-jsdoctoolkit-codeview/" target="_blank">Codeview</a> 1.2<br />
Generated on:
<time datetime='2021-8-13' pubdate>2021-8-13 18:29</time>
</footer>
</div>
</div>
<div class="index indexStatic"></div>
<div class="content">
<div class="innerContent">
<article>
<header>
<h1 class="classTitle">
Namespace <span>hcap.security</span>
</h1>
<div class="intro">
<p class="description summary">
hcap.security
</p>
<ul class="summary">
<li>Defined in: <a href="../symbols/src/js_hcap-1.24.6.5901.js.html">hcap-1.24.6.5901.js</a></li>
</ul>
</div>
</header>
<section>
<div class="props">
<table class="summaryTable" cellspacing="0" summary="A summary of the constructor documented in the class hcap.security.">
<caption class="sectionTitle">Namespace Summary</caption>
<thead>
<tr>
<th scope="col">Constructor Attributes</th>
<th scope="col">Constructor Name and Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="attributes">&nbsp;</td>
<td class="nameDescription" >
<div class="fixedFont">
<b><a href="../symbols/hcap.security.html#constructor">hcap.security</a></b>
</div>
<div class="description"></div>
</td>
</tr>
</tbody>
</table>
</div>
</section>
<!--
#### METHODS SUMMARY
-->
<section>
<div class="props">
<h2 class="sectionTitle">Method Summary</h2>
<nav>
<table class="summaryTable" id="MethodsList" cellspacing="0" summary="A summary of the methods documented in the class hcap.security.">
<thead>
<tr>
<th scope="col">Method Attributes</th>
<th scope="col">Method Name and Description</th>
</tr>
</thead>
<tbody>
<tr
class='item0'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.existClientCertificate">existClientCertificate</a></b>(param)
</div>
<div class="description">Returns whether a client certificate was registered or not.</div>
</td>
</tr>
<tr
class='item1'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.existServerCertificate">existServerCertificate</a></b>(param)
</div>
<div class="description">Returns whether a server certificate was registered or not.</div>
</td>
</tr>
<tr
class='item2'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.registerClientCertificate">registerClientCertificate</a></b>(param)
</div>
<div class="description">Registers a client certificate and its private key for TLS and SSL client authentication.</div>
</td>
</tr>
<tr
class='item3'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.registerServerCertificate">registerServerCertificate</a></b>(param)
</div>
<div class="description">Registers a server certificate to validate the keys from the HCAP server as part of a PKI (Public Key Infrastructure).</div>
</td>
</tr>
<tr
class='item4'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.unregisterClientCertificate">unregisterClientCertificate</a></b>(param)
</div>
<div class="description">Unregisters a client certificate and its private key, and deactivate the TLS authentication.</div>
</td>
</tr>
<tr
class='item5'
>
<td class="attributes">&lt;static&gt; &nbsp;</td>
<td class="nameDescription">
<div class="fixedFont">hcap.security.<b><a href="../symbols/hcap.security.html#.unregisterServerCertificate">unregisterServerCertificate</a></b>(param)
</div>
<div class="description">Unregisters a server certificate and deactivate the TLS authentication and the host verification.</div>
</td>
</tr>
</tbody>
</table>
</nav>
</div>
</section>
<!--
#### EVENTS SUMMARY
-->
<!--
#### CONSTRUCTOR DETAILS
-->
<section>
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle" id="constructor">
Namespace Detail
</h2>
<div class="fixedFont">
<b>hcap.security</b>
</div>
<div class="description">
</div>
</div>
</div>
</section>
<!--
#### FIELD DETAILS
-->
<!--
#### METHOD DETAILS
-->
<section>
<div class="details props">
<div class="innerProps">
<h2 class="sectionTitle">
Method Detail
</h2>
<ul class="methodDetail" id="MethodDetail">
<li
class='item0'
>
<div class="fixedFont heading" id=".existClientCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>existClientCertificate</b>(param)
</div>
<div class="description">
Returns whether a client certificate was registered or not.<br>
</div>
<pre class="code prettyprint">hcap.security.existClientCertificate({
"nickname" : "testclient",
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for the client certificate.<br>
<li>{String} param.accessCode [Required] - password to be used for the registration of the client certificate before.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function (param) {
// {String} param.nickname - nickname for the client certificate.
// {Boolean} param.exist - true if the client certificate was registered.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a><br>
<a href="hcap.security.html#.registerClientCertificate">hcap.security.registerClientCertificate()</a><br>
<a href="hcap.security.html#.unregisterServerCertificate">hcap.security.unregisterServerCertificate()</a><br>
<a href="hcap.security.html#.unregisterClientCertificate">hcap.security.unregisterClientCertificate()</a><br>
<a href="hcap.security.html#.existServerCertificate">hcap.security.existServerCertificate()</a><br></dd>
</dl>
</dl>
<div class="hr"></div>
</li>
<li
class='item1'
>
<div class="fixedFont heading" id=".existServerCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>existServerCertificate</b>(param)
</div>
<div class="description">
Returns whether a server certificate was registered or not.<br>
</div>
<pre class="code prettyprint">hcap.security.existServerCertificate({
"nickname" : "testserver",
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for the server certificate.<br>
<li>{String} param.accessCode [Required] - password to be used for the registration of the server certificate before.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function (param) {
// {String} param.nickname - nickname for the server certificate.
// {Boolean} param.exist - true if the server certificate was registered.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a><br>
<a href="hcap.security.html#.registerClientCertificate">hcap.security.registerClientCertificate()</a><br>
<a href="hcap.security.html#.unregisterServerCertificate">hcap.security.unregisterServerCertificate()</a><br>
<a href="hcap.security.html#.unregisterClientCertificate">hcap.security.unregisterClientCertificate()</a><br>
<a href="hcap.security.html#.existClientCertificate">hcap.security.existClientCertificate()</a><br></dd>
</dl>
</dl>
<div class="hr"></div>
</li>
<li
class='item2'
>
<div class="fixedFont heading" id=".registerClientCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>registerClientCertificate</b>(param)
</div>
<div class="description">
Registers a client certificate and its private key for TLS and SSL client authentication.<br>
After registration, reboot is needed.<br>
If a client certificate is registered, TV will try to authenticate to the HCAP server with the client certificate in the modules like HCAP middleware, Ez-i and HCAP browser in charge of downloads or loads of HCAP applications.<br>
The client certificate to register can be a self-signed certificate or a trusted CA (Certificate Authority) certificate.<br>
Only 1 client certificate is permitted in TV. Therefore to register a client certificate when another client certificate was registered, revoke(unregister) the registered client certificate first, and register the new client certificate. Or the registration for the new client certificate will be failed.<br>
Please refer to the example code to create server/client self-signed certificates in <a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a>
And register client_x86Emul.crt, client_x86Emul.key and rootCA.crt to TV as the client certificate, the client private key and the CA certificate repectively in the example code and its server environment.<br>
urlPattern and issuerCN are needed to match the HCAP app url and its client certificate automatically in HCAP browser.<br>
</div>
<pre class="code prettyprint">hcap.security.registerClientCertificate({
"nickname" : "testclient",
"certificate" : "\
Certificate:\n\
Data:\n\
Version: 3 (0x2)\n\
Serial Number: 1 (0x1)\n\
Signature Algorithm: sha1WithRSAEncryption\n\
Issuer: C=KR, L=LGE, O=CTO CA, CN=ROOT CA\n\
Validity\n\
Not Before: Mar 21 06:53:26 2016 GMT\n\
Not After : Mar 19 06:53:26 2026 GMT\n\
Subject: C=KR, L=LGE, O=CTO, CN=x86Emul\n\
Subject Public Key Info:\n\
Public Key Algorithm: rsaEncryption\n\
Public-Key: (2048 bit)\n\
Modulus:\n\
00:a2:e3:4d:39:47:6f:9c:bb:7e:fb:90:43:8a:29:\n\
7f:3a:b2:4e:32:83:bd:1f:16:c1:0b:d2:cd:e7:22:\n\
33:f3:19:41:ea:db:ec:0a:3d:e9:4c:00:8c:e2:8d:\n\
57:d8:b0:12:af:50:66:df:6f:f5:65:d8:91:c0:a8:\n\
f6:87:b7:fa:ed:7c:32:bf:25:d3:18:a3:bc:3b:f8:\n\
0c:d5:bc:03:99:7d:c6:fd:72:d6:19:c7:3f:4c:7b:\n\
8f:1a:d8:c3:b6:15:01:82:99:a8:2d:b0:79:36:86:\n\
2a:cb:dc:43:a5:30:ab:fd:31:70:76:e4:01:67:73:\n\
d9:bd:7a:20:d9:49:f4:11:61:de:b9:6b:80:d5:83:\n\
5f:1b:e0:34:fa:af:3c:b9:26:84:1b:ca:16:a5:02:\n\
be:f9:fa:bc:19:f1:84:a9:13:7b:32:04:68:ba:c3:\n\
66:69:8a:b8:84:19:bf:15:72:df:37:68:83:cb:e5:\n\
4b:e2:59:8c:4e:e0:42:3b:ea:a6:39:85:1e:ae:41:\n\
c4:a6:17:06:a2:02:d6:c4:cb:53:0d:f7:2e:e7:28:\n\
20:35:a7:3e:02:9c:38:68:1c:d6:18:c0:39:24:1d:\n\
f2:96:c5:81:f1:c2:de:22:e0:d4:f0:02:72:9c:e8:\n\
c1:d0:28:46:60:1e:6d:52:78:f4:48:94:80:9b:01:\n\
dc:eb\n\
Exponent: 65537 (0x10001)\n\
X509v3 extensions:\n\
X509v3 Basic Constraints: \n\
CA:FALSE\n\
Netscape Comment: \n\
OpenSSL Generated Certificate\n\
X509v3 Subject Key Identifier: \n\
EE:1A:6C:59:3B:13:FA:32:A7:61:60:2A:6C:56:66:82:AB:21:CD:05\n\
X509v3 Authority Key Identifier: \n\
keyid:85:20:EF:03:87:EA:73:32:10:5D:B2:3B:92:42:4F:3C:66:65:6A:E0\n\
\n\
Signature Algorithm: sha1WithRSAEncryption\n\
92:a7:bd:83:65:de:c9:bd:cb:57:c0:46:c0:16:e7:7e:0a:e6:\n\
67:96:ab:45:38:91:2a:6e:b8:5c:07:8a:58:0d:56:0b:79:e6:\n\
00:c4:0e:ce:86:ae:07:cb:69:bf:24:d9:69:fe:59:b6:31:b9:\n\
82:79:75:1a:64:41:45:2d:d9:83:c2:5b:f9:5c:80:1b:ea:1a:\n\
14:c7:5e:9e:f9:1e:7e:1c:fc:a3:55:1b:9a:df:cd:38:f7:e9:\n\
24:ac:ce:b0:91:93:a6:a8:45:99:c3:77:c8:e4:86:4c:8a:11:\n\
35:27:40:f4:71:d6:84:db:7b:26:a7:d3:6c:9d:e5:d0:d7:c2:\n\
96:dd:80:0f:99:24:0f:40:b1:65:d0:7f:87:4d:d3:36:b1:da:\n\
a7:45:08:5a:2f:59:d9:84:11:a9:c4:77:fe:54:36:5f:47:d1:\n\
3c:86:32:92:6d:04:77:61:51:4b:bf:17:88:0d:b0:26:41:12:\n\
11:4f:cd:1f:50:b1:38:0d:7b:7c:3c:de:52:97:e3:e3:12:57:\n\
6b:2a:7b:4d:ed:11:be:cd:7e:b8:e9:18:eb:78:b3:03:1f:87:\n\
8e:ea:fa:9b:da:ab:7b:1a:4a:ba:c3:e0:10:ed:c2:e6:05:22:\n\
97:cf:3d:96:77:b9:63:47:82:0a:d1:9c:fa:73:eb:05:e1:8e:\n\
43:d1:87:96\n\
-----BEGIN CERTIFICATE-----\n\
MIIDbzCCAlegAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQswCQYDVQQGEwJLUjEM\n\
MAoGA1UEBwwDTEdFMQ8wDQYDVQQKDAZDVE8gQ0ExEDAOBgNVBAMMB1JPT1QgQ0Ew\n\
HhcNMTYwMzIxMDY1MzI2WhcNMjYwMzE5MDY1MzI2WjA7MQswCQYDVQQGEwJLUjEM\n\
MAoGA1UEBwwDTEdFMQwwCgYDVQQKDANDVE8xEDAOBgNVBAMMB3g4NkVtdWwwggEi\n\
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCi4005R2+cu377kEOKKX86sk4y\n\
g70fFsEL0s3nIjPzGUHq2+wKPelMAIzijVfYsBKvUGbfb/Vl2JHAqPaHt/rtfDK/\n\
JdMYo7w7+AzVvAOZfcb9ctYZxz9Me48a2MO2FQGCmagtsHk2hirL3EOlMKv9MXB2\n\
5AFnc9m9eiDZSfQRYd65a4DVg18b4DT6rzy5JoQbyhalAr75+rwZ8YSpE3syBGi6\n\
w2ZpiriEGb8Vct83aIPL5UviWYxO4EI76qY5hR6uQcSmFwaiAtbEy1MN9y7nKCA1\n\
pz4CnDhoHNYYwDkkHfKWxYHxwt4i4NTwAnKc6MHQKEZgHm1SePRIlICbAdzrAgMB\n\
AAGjezB5MAkGA1UdEwQCMAAwLAYJYIZIAYb4QgENBB8WHU9wZW5TU0wgR2VuZXJh\n\
dGVkIENlcnRpZmljYXRlMB0GA1UdDgQWBBTuGmxZOxP6MqdhYCpsVmaCqyHNBTAf\n\
BgNVHSMEGDAWgBSFIO8Dh+pzMhBdsjuSQk88ZmVq4DANBgkqhkiG9w0BAQUFAAOC\n\
AQEAkqe9g2Xeyb3LV8BGwBbnfgrmZ5arRTiRKm64XAeKWA1WC3nmAMQOzoauB8tp\n\
vyTZaf5ZtjG5gnl1GmRBRS3Zg8Jb+VyAG+oaFMdenvkefhz8o1Ubmt/NOPfpJKzO\n\
sJGTpqhFmcN3yOSGTIoRNSdA9HHWhNt7JqfTbJ3l0NfClt2AD5kkD0CxZdB/h03T\n\
NrHap0UIWi9Z2YQRqcR3/lQ2X0fRPIYykm0Ed2FRS78XiA2wJkESEU/NH1CxOA17\n\
fDzeUpfj4xJXayp7Te0Rvs1+uOkY63izAx+Hjur6m9qrexpKusPgEO3C5gUil889\n\
lne5Y0eCCtGc+nPrBeGOQ9GHlg==\n\
-----END CERTIFICATE-----\n",
"key" : "\
-----BEGIN RSA PRIVATE KEY-----\n\
MIIEowIBAAKCAQEAouNNOUdvnLt++5BDiil/OrJOMoO9HxbBC9LN5yIz8xlB6tvs\n\
Cj3pTACM4o1X2LASr1Bm32/1ZdiRwKj2h7f67XwyvyXTGKO8O/gM1bwDmX3G/XLW\n\
Gcc/THuPGtjDthUBgpmoLbB5NoYqy9xDpTCr/TFwduQBZ3PZvXog2Un0EWHeuWuA\n\
1YNfG+A0+q88uSaEG8oWpQK++fq8GfGEqRN7MgRousNmaYq4hBm/FXLfN2iDy+VL\n\
4lmMTuBCO+qmOYUerkHEphcGogLWxMtTDfcu5yggNac+Apw4aBzWGMA5JB3ylsWB\n\
8cLeIuDU8AJynOjB0ChGYB5tUnj0SJSAmwHc6wIDAQABAoIBACWW9vdE+QjebAt5\n\
21xC/014YHtf04EdKyejWkkAp6RuK7wbTHmAmBol9l1B6QfkeitjDpp5p9P9CoW/\n\
eEURvCKaCsv52qFRB9t+/tdEMEB3ujg7DBWe2Yi46ulzJJcceeC9vQXuN8rRY4bw\n\
KdwxQz+G7UFClOBe59zGFlaOrnhkE1HyWIsJc6SoVBhvcHsAu313KJ/yAdboBI70\n\
PwUVyYxP7txF17PbK6yPEOq7o0q+KSBiOzxyH5qqsVmHqB2aMNO9SXRlr+ldjd7e\n\
m3eIbeR8KmMiaq5toq+o+2LfgG9nYMQEUtHqPeEG2tvpmAu3jXUU4mxL+5XZfQA9\n\
oRclCcECgYEA0APW+5lqtTg+Q4pVhHGe0uX4wpbMQkIbKBbVm9BwqSGsFtzeiV57\n\
ffTFbY6rcVfElfqBSRi0FxDglYWbZgMYdi7G/qXJmoh6CJ/UY3IHGBLdvWfE3yPz\n\
KZcPHyxRYZgTW9/BEgro/BcRY/7MKwnNryMUqW0mLm9UzmZM/p6UhVkCgYEAyHaE\n\
S90R2Po/SAXsSjbahfnaKZ5Q/4M7zdnt+IgeaK0hFb1Qp0FP1EJeLb8rZeldlWrT\n\
U9r0z0dwVrh1i4yTjG9DB8ipbkhLixt6P3eUunYkn+NEG9NZE7y/QiGrYjq6fRBw\n\
lbZJiQYcSl7BFF2xF3j4ZzzMGktkSTKaW8lFt+MCgYEAqu4M0XBu0/0khOF+hjfL\n\
V+frsxKxQ90IbbfdzYzJluF5hMv3/Y9rEMR7Gxy6WofRnaBcbpFjIvUWZyeD2569\n\
khe8I3JeKKLvDHkx0InZtHmERminyOjEnq9nmKkVMooBlmRWRZo7ezMFclLkuJT0\n\
tG6yQsrTLiMD4BsGN9BdoPkCgYBUEtC9eIQpuhqcPE+zeHoBwp4q4kkaQJHubb4O\n\
hBgs0p+TnIic/Rlb7lHNYeXzogIrzle/TY9q94038bjqxBSFy4wTUactp4h3WRjW\n\
UXLBGReXLxu7h9JOItUcCT71vafFGAX/5CnHHBb1YfQcdIb3TzbvJWJ8jK4MvPpc\n\
EHf6/QKBgH/9uM9+GZvS2iXc2KzhB+oENyWM/kJbMlfefVUu2AaBAzDdVBTDvAxd\n\
PZTdseH5K8DrVRJe8YcFnd86HE/B56PAmyP4Qo+Sslf5bc/Gmp08mMdYxWb1IwRm\n\
ndWHoUiBaeMo5QB/Oac/0bBwlOt14PO+t7TWjKHQIHvfONNrXbui\n\
-----END RSA PRIVATE KEY-----\n",
"keyPassword" : "passcode",
"cacert" : "\
-----BEGIN CERTIFICATE-----\n\
MIIDXzCCAkegAwIBAgIJALispfP+z4ZZMA0GCSqGSIb3DQEBBQUAMEYxCzAJBgNV\n\
BAYTAktSMQwwCgYDVQQHDANMR0UxDzANBgNVBAoMBkNUTyBDQTEYMBYGA1UEAwwP\n\
amtjbG91ZC5sZ2UuY29tMB4XDTE2MDMxNzAzMDUzMFoXDTI2MDMxNTAzMDUzMFow\n\
RjELMAkGA1UEBhMCS1IxDDAKBgNVBAcMA0xHRTEPMA0GA1UECgwGQ1RPIENBMRgw\n\
FgYDVQQDDA9qa2Nsb3VkLmxnZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n\
ggEKAoIBAQCwdor7TwwIIuTI8HvOBx//cBlu+xE1L/9ZAWaIRivK/O/1Bv+jTxpx\n\
5RN9RttmJle9QS8Tx6/Wf40REt9Lnc1fUCdVILSkTrcHY4Wcc5cqvt0Uz17kcaTJ\n\
Q6Ch2wiyq2ZSj2vTQAhQfV0cpvwJTYKwXCSeL8M10KZqeU/41PITp/67MzCZF+BT\n\
gTm60UTfrc/Owe8q2yn3di7wKiuEwP5WROGa/HkOrWJfkx0DjAlO79tZoUmyd4RH\n\
C6R3ST8lbCMtttDd8JGHlCSVRf9NIQc71M88vgYY7Dh9POfCfhxkVA9/ws5h7aHt\n\
t0vAqmRN6vgFhBPhmTUp+eoUl+3nf0aVAgMBAAGjUDBOMB0GA1UdDgQWBBQkXPyq\n\
koD+LlrJgYRvkiqg5KDJJTAfBgNVHSMEGDAWgBQkXPyqkoD+LlrJgYRvkiqg5KDJ\n\
JTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCcK/JXi0aaQ1RiToTK\n\
stYpMZjTtmiDqgpdHkhsU0H2EwVW46j4xaALzLoSWx4neREJS1KPJ4Wh6PT9554S\n\
wI/9yIjiqJlsHmU3h3FxjO5NRO9Qu+o9MeLAGAJs9M49NS0TiJYo1V7beyI5ju99\n\
xs887ac5F/Axg3Pb4sX1Wo5xTB2Bw+bKMHj0Rk+9uDrGqsrPpX39R8CL0W/1ISU5\n\
ioOvHBHeyw2PzqO4KbIXrvj0dihDBWc/SltS/4htXs4JL76rA7+Byj9AUVxrm2QK\n\
gmsignOklllYUkLdIjLPyJy8tDUFTcR4oElWN+mGME4zl0x8mCaTaPf8niBw9hfI\n\
Cymj\n\
-----END CERTIFICATE-----\n",
"urlPattern" : "https://jkcloud.lge.com",
"issuerCN" : "ROOT CA",
"isSelfSigned" : true,
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for this client certificate as 4 to 10-character string chosen from the set [a-zA-Z0-9].<br>
<li>{String} param.certificate [Required] - certificate string of the full contents in the client certificate file in the form of PEM (client_x86Emul.crt in above example).<br>
<li>{String} param.key [Required] - certificate string of the full contents in the client private key file in the form of PEM (client_x86Emul.key in above example).<br>
<li>{String} param.keyPassword [Required] - password string of the client private key ("passcode" in above example).<br>
<li>{String} param.cacert [Required] - certificate string of the full contents in the CA certificate file of the client certificate in the form of PEM (rootCA.crt in above example).<br>
<li>{String} param.urlPattern [Required] - url pattern string to specify sites for which HCAP browser automatically selects a client certificate if the site requests a certificate (ex. "https://jkcloud.lge.com").<br>
<li>{String} param.issuerCN [Required] - CommonName string of the issuer of the client certificate ("ROOT CA" in above example).<br>
<li>{Boolean} param.isSelfSigned [Required] - true if the client certificate is self-signed, otherwise false.<br>
<li>{String} param.accessCode [Required] - password as 4 to 10-character string chosen from the set [a-zA-Z0-9] to get whether this certificate is registered or not, or revoke this certificate in the future.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function() {
// No Parameter.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a><br>
<a href="hcap.security.html#.unregisterServerCertificate">hcap.security.unregisterServerCertificate()</a><br>
<a href="hcap.security.html#.unregisterClientCertificate">hcap.security.unregisterClientCertificate()</a><br>
<a href="hcap.security.html#.existServerCertificate">hcap.security.existServerCertificate()</a><br>
<a href="hcap.security.html#.existClientCertificate">hcap.security.existClientCertificate()</a><br></dd>
</dl>
</dl>
<div class="hr"></div>
</li>
<li
class='item3'
>
<div class="fixedFont heading" id=".registerServerCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>registerServerCertificate</b>(param)
</div>
<div class="description">
Registers a server certificate to validate the keys from the HCAP server as part of a PKI (Public Key Infrastructure).<br>
If you want to register a server certificate, the property "browser_https_security_level" should be replaced from "1" to "0".<br>
After registration, reboot is needed.<br>
Handling (Register/Unregister) server/client certificates must be done very carefully under the control of installer or hotelier because it is done in insecure environment.<br>
If a server certificate is registered, TV will validate the public key from the HCAP server when TV requests resources to the HCAP server in the modules like HCAP MW, Ez-i and HCAP browser in charge of downloads or loads of HCAP applications.<br>
The server certificate to register can be a self-signed certificate or a CA (Certificate Authority) certificate.<br>
Only 1 server certificate is permitted in TV. Therefore to register a server certificate when another server certificate was registered, revoke(unregister) the registered server certificate first, and register the new server certificate. Or the registration for the new server certificate will be failed.<br><br>
This feature was tested with following settings in Ubuntu 12.04 LTS and the apache server as the HTTPS HCAP server.<br>
Reference : <a href="http://theheat.dk/blog/?p=1023">Create a CA, issue server/client certificates and test them via Apache</a><br>
<pre style="background-color: lightgray">
user@lgesccicbld28v:~/certificate$ mkdir demoCA
user@lgesccicbld28v:~/certificate$ cd demoCA
user@lgesccicbld28v:~/certificate/demoCA$ mkdir certs
user@lgesccicbld28v:~/certificate/demoCA$ mkdir csr
user@lgesccicbld28v:~/certificate/demoCA$ mkdir newcerts
user@lgesccicbld28v:~/certificate/demoCA$ mkdir private
user@lgesccicbld28v:~/certificate/demoCA$ cp ../openssl.cnf .
user@lgesccicbld28v:~/certificate/demoCA$ echo 00 > serial
user@lgesccicbld28v:~/certificate/demoCA$ echo 00 > crlnumber
user@lgesccicbld28v:~/certificate/demoCA$ touch index.txt
user@lgesccicbld28v:~/certificate/demoCA$ pwd
/home/user/certificate/demoCA
user@lgesccicbld28v:~/certificate/demoCA$ vi openssl.cnf
>>> Change dir in CA_default
[ CA_default ]
dir = ./demoCA # Where everything is kept
>>>>
dir = /home/user/certificate/demoCA # Where everything is kept
user@lgesccicbld28v:~/certificate/demoCA$ openssl genrsa -des3 -passout pass:passcode -out private/rootCA.key 2048
Generating RSA private key, 2048 bit long modulus
...........................................................+++
......................................................+++
e is 65537 (0x10001)
user@lgesccicbld28v:~/certificate/demoCA$ openssl rsa -passin pass:passcode -in private/rootCA.key -out private/rootCA.key
writing RSA key
user@lgesccicbld28v:~/certificate/demoCA$ openssl req -config openssl.cnf -new -x509 -subj '/C=KR/L=LGE/O=CTO CA/CN=ROOT CA' -days 3650 -key private/rootCA.key -out certs/rootCA.crt
user@lgesccicbld28v:~/certificate/demoCA$ openssl genrsa -des3 -passout pass:passcode -out private/jkcloud.key 2048
Generating RSA private key, 2048 bit long modulus
................+++
.................................................+++
e is 65537 (0x10001)
user@lgesccicbld28v:~/certificate/demoCA$ openssl rsa -passin pass:passcode -in private/jkcloud.key -out private/jkcloud.key
writing RSA key
user@lgesccicbld28v:~/certificate/demoCA$ openssl req -config openssl.cnf -new -subj '/C=KR/L=LGE/O=CTO/CN=jkcloud.lge.com' -key private/jkcloud.key -out csr/jkcloud.csr
user@lgesccicbld28v:~/certificate/demoCA$ openssl ca -batch -config openssl.cnf -days 3650 -in csr/jkcloud.csr -out certs/jkcloud.crt -keyfile private/rootCA.key -cert certs/rootCA.crt -policy policy_anything
Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 0 (0x0)
Validity
Not Before: Mar 21 06:52:38 2016 GMT
Not After : Mar 19 06:52:38 2026 GMT
Subject:
countryName = KR
localityName = LGE
organizationName = CTO
commonName = jkcloud.lge.com
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
3F:87:5F:F8:76:65:12:96:AF:D6:4B:BC:AA:FA:1E:36:76:5F:8A:FE
X509v3 Authority Key Identifier:
keyid:85:20:EF:03:87:EA:73:32:10:5D:B2:3B:92:42:4F:3C:66:65:6A:E0
Certificate is to be certified until Mar 19 06:52:38 2026 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
user@lgesccicbld28v:~/certificate/demoCA$ openssl genrsa -des3 -passout pass:passcode -out private/client_x86Emul.key 2048
Generating RSA private key, 2048 bit long modulus
...................................................................................................................................................................................................................................+++
...................................................................................................................+++
e is 65537 (0x10001)
user@lgesccicbld28v:~/certificate/demoCA$ openssl rsa -passin pass:passcode -in private/client_x86Emul.key -out private/client_x86Emul.key
writing RSA key
user@lgesccicbld28v:~/certificate/demoCA$ openssl req -config openssl.cnf -new -subj '/C=KR/L=LGE/O=CTO/CN=x86Emul' -key private/client_x86Emul.key -out csr/client_x86Emul.csr
user@lgesccicbld28v:~/certificate/demoCA$ openssl ca -batch -config openssl.cnf -days 3650 -in csr/client_x86Emul.csr -out certs/client_x86Emul.crt -keyfile private/rootCA.key -cert certs/rootCA.crt -policy policy_anything
Using configuration from openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
Serial Number: 1 (0x1)
Validity
Not Before: Mar 21 06:53:26 2016 GMT
Not After : Mar 19 06:53:26 2026 GMT
Subject:
countryName = KR
localityName = LGE
organizationName = CTO
commonName = x86Emul
X509v3 extensions:
X509v3 Basic Constraints:
CA:FALSE
Netscape Comment:
OpenSSL Generated Certificate
X509v3 Subject Key Identifier:
EE:1A:6C:59:3B:13:FA:32:A7:61:60:2A:6C:56:66:82:AB:21:CD:05
X509v3 Authority Key Identifier:
keyid:85:20:EF:03:87:EA:73:32:10:5D:B2:3B:92:42:4F:3C:66:65:6A:E0
Certificate is to be certified until Mar 19 06:53:26 2026 GMT (3650 days)
Write out database with 1 new entries
Data Base Updated
user@lgesccicbld28v:~/certificate/demoCA$ find
.
./serial.old
./newcerts
./newcerts/00.pem
./newcerts/01.pem
./serial
./index.txt.attr
./openssl.cnf
./certs
./certs/rootCA.crt
./certs/client_x86Emul.crt
./certs/jkcloud.crt
./crlnumber
./index.txt.attr.old
./csr
./csr/jkcloud.csr
./csr/client_x86Emul.csr
./private
./private/client_x86Emul.key
./private/jkcloud.key
./private/rootCA.key
./index.txt.old
./index.txt
user@lgesccicbld28v:~/certificate/demoCA$
user@lgesccicbld28v:~/certificate/demoCA$ sudo vi /etc/apache2/sites-available/default-ssl
[sudo] password for user:
>>> Change as following
SSLEngine on # enable for server/client certificate
SSLCertificateFile /home/user/certificate/demoCA/certs/jkcloud.crt # for server certificate
SSLCertificateKeyFile /home/user/certificate/demoCA/private/jkcloud.key # for server certificate
SSLCACertificateFile /home/user/certificate/demoCA/certs/rootCA.crt # for client certificate
SSLVerifyClient require # for client certificate
SSLVerifyDepth 10 # for client certificate
user@lgesccicbld28v:~/certificate/demoCA$ sudo a2enmod ssl
Module ssl already enabled
user@lgesccicbld28v:~/certificate/demoCA$ sudo a2ensite default-ssl
Site default-ssl already enabled
user@lgesccicbld28v:~/certificate/demoCA$ sudo service apache2 restart
Restarting web server apache2 ... waiting [ OK ]
user@lgesccicbld28v:~/certificate/demoCA$
</pre><br>
In above example, register rootCA.crt to TV as the server certificate with <a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a>.<br>
And in the server, register jkcloud.crt and jkcloud.key to SSLCertificateFile and SSLCertificateKeyFile respectively if the server is the apache server.<br>
</div>
<pre class="code prettyprint">hcap.security.registerServerCertificate({
"nickname" : "testserver",
"certificate" : "\
-----BEGIN CERTIFICATE-----\n\
MIIDXzCCAkegAwIBAgIJALispfP+z4ZZMA0GCSqGSIb3DQEBBQUAMEYxCzAJBgNV\n\
BAYTAktSMQwwCgYDVQQHDANMR0UxDzANBgNVBAoMBkNUTyBDQTEYMBYGA1UEAwwP\n\
amtjbG91ZC5sZ2UuY29tMB4XDTE2MDMxNzAzMDUzMFoXDTI2MDMxNTAzMDUzMFow\n\
RjELMAkGA1UEBhMCS1IxDDAKBgNVBAcMA0xHRTEPMA0GA1UECgwGQ1RPIENBMRgw\n\
FgYDVQQDDA9qa2Nsb3VkLmxnZS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw\n\
ggEKAoIBAQCwdor7TwwIIuTI8HvOBx//cBlu+xE1L/9ZAWaIRivK/O/1Bv+jTxpx\n\
5RN9RttmJle9QS8Tx6/Wf40REt9Lnc1fUCdVILSkTrcHY4Wcc5cqvt0Uz17kcaTJ\n\
Q6Ch2wiyq2ZSj2vTQAhQfV0cpvwJTYKwXCSeL8M10KZqeU/41PITp/67MzCZF+BT\n\
gTm60UTfrc/Owe8q2yn3di7wKiuEwP5WROGa/HkOrWJfkx0DjAlO79tZoUmyd4RH\n\
C6R3ST8lbCMtttDd8JGHlCSVRf9NIQc71M88vgYY7Dh9POfCfhxkVA9/ws5h7aHt\n\
t0vAqmRN6vgFhBPhmTUp+eoUl+3nf0aVAgMBAAGjUDBOMB0GA1UdDgQWBBQkXPyq\n\
koD+LlrJgYRvkiqg5KDJJTAfBgNVHSMEGDAWgBQkXPyqkoD+LlrJgYRvkiqg5KDJ\n\
JTAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IBAQCcK/JXi0aaQ1RiToTK\n\
stYpMZjTtmiDqgpdHkhsU0H2EwVW46j4xaALzLoSWx4neREJS1KPJ4Wh6PT9554S\n\
wI/9yIjiqJlsHmU3h3FxjO5NRO9Qu+o9MeLAGAJs9M49NS0TiJYo1V7beyI5ju99\n\
xs887ac5F/Axg3Pb4sX1Wo5xTB2Bw+bKMHj0Rk+9uDrGqsrPpX39R8CL0W/1ISU5\n\
ioOvHBHeyw2PzqO4KbIXrvj0dihDBWc/SltS/4htXs4JL76rA7+Byj9AUVxrm2QK\n\
gmsignOklllYUkLdIjLPyJy8tDUFTcR4oElWN+mGME4zl0x8mCaTaPf8niBw9hfI\n\
Cymj\n\
-----END CERTIFICATE-----\n",
"enableVerifyHost" : true,
"isSelfSigned" : true,
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for this server certificate as 4 to 10-character string chosen from the set [a-zA-Z0-9].<br>
<li>{String} param.certificate [Required] - certificate string of the full contents in the server certificate file (public root CA of the server certificate file) in the form of PEM (rootCA.crt in above example).<br>
<li>{Boolean} param.enableVerifyHost [Required] - true for verifying the server to connect to has the same hostname in the certificate (if the verification is failed, the connection will be failed), otherwise false.<br>
<li>{Boolean} param.isSelfSigned [Required] - true if the server certificate is self-signed, otherwise false.<br>
<li>{String} param.accessCode [Required] - password as 4 to 10-character string chosen from the set [a-zA-Z0-9] to get whether this certificate is registered or not, or revoke this certificate in the future.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function() {
// No Parameter.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerClientCertificate">hcap.security.registerClientCertificate()</a><br>
<a href="hcap.security.html#.unregisterServerCertificate">hcap.security.unregisterServerCertificate()</a><br>
<a href="hcap.security.html#.unregisterClientCertificate">hcap.security.unregisterClientCertificate()</a><br>
<a href="hcap.security.html#.existServerCertificate">hcap.security.existServerCertificate()</a><br>
<a href="hcap.security.html#.existClientCertificate">hcap.security.existClientCertificate()</a><br></dd>
</dl>
</dl>
<div class="hr"></div>
</li>
<li
class='item4'
>
<div class="fixedFont heading" id=".unregisterClientCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>unregisterClientCertificate</b>(param)
</div>
<div class="description">
Unregisters a client certificate and its private key, and deactivate the TLS authentication.<br>
</div>
<pre class="code prettyprint">hcap.security.unregisterClientCertificate({
"nickname" : "testclient",
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for the client certificate to unregister.<br>
<li>{String} param.accessCode [Required] - password to be used for the registration of the client certificate before.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function() {
// No Parameter.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a><br>
<a href="hcap.security.html#.registerClientCertificate">hcap.security.registerClientCertificate()</a><br>
<a href="hcap.security.html#.unregisterServerCertificate">hcap.security.unregisterServerCertificate()</a><br>
<a href="hcap.security.html#.existServerCertificate">hcap.security.existServerCertificate()</a><br>
<a href="hcap.security.html#.existClientCertificate">hcap.security.existClientCertificate()</a><br></dd>
</dl>
</dl>
<div class="hr"></div>
</li>
<li
class='item5'
>
<div class="fixedFont heading" id=".unregisterServerCertificate">
<span class='lighter'>
&lt;static&gt;
</span>
<span class="light">hcap.security.</span><b>unregisterServerCertificate</b>(param)
</div>
<div class="description">
Unregisters a server certificate and deactivate the TLS authentication and the host verification.<br>
</div>
<pre class="code prettyprint">hcap.security.unregisterServerCertificate({
"nickname" : "testserver",
"accessCode" : "passCode1",
"onSuccess" : function() {
console.log("onSuccess");
},
"onFailure" : function(f) {
console.log("onFailure : errorMessage = " + f.errorMessage);
}
});</pre>
<dl class="detailList params">
<dt class="heading">Parameters:</dt>
<dt>
<span class="light fixedFont">{Object}</span> <b>param</b>
</dt>
<dd><ul>
<li>{String} param.nickname [Required] - nickname for the server certificate to unregister.<br>
<li>{String} param.accessCode [Required] - password to be used for the registration of the server certificate before.<br>
<li>{Function} param.onSuccess [Optional] - success callback function.
<pre class="code prettyprint">
param.onSuccess = function() {
// No Parameter.
}</pre>
</li>
<li>{Function} param.onFailure [Optional] - failure callback function.
<pre class="code prettyprint">
param.onFailure = function (param) {
// {String} param.errorMessage - in case of failure, this message provides the details.
}</pre>
</li>
</ul></dd>
</dl>
<dl class="detailList nomargin">
<dl class="detailList params">
<dt class="heading">Since:</dt>
<dd>1.20.0</dd>
</dl>
<dl class="detailList params">
<dt class="heading">See:</dt>
<dd><a href="hcap.security.html#.registerServerCertificate">hcap.security.registerServerCertificate()</a><br>
<a href="hcap.security.html#.registerClientCertificate">hcap.security.registerClientCertificate()</a><br>
<a href="hcap.security.html#.unregisterClientCertificate">hcap.security.unregisterClientCertificate()</a><br>
<a href="hcap.security.html#.existServerCertificate">hcap.security.existServerCertificate()</a><br>
<a href="hcap.security.html#.existClientCertificate">hcap.security.existClientCertificate()</a><br></dd>
</dl>
</dl>
</li>
</ul>
</div>
</div>
</section>
<!--
#### EVENT DETAILS
-->
</article>
</div>
</div>
<script type="text/javascript">
wbos.CssTools.MediaQueryFallBack.LoadCss('../css/screen.css', '../css/handheld.css', 660)
codeview.classFilter.Init()
</script>
<script src="../javascript/highlighter/prettify.js"></script>
<script>prettyPrint();</script>
</body>
</html>