<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
	
<!--***********************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 ***********************************************************-->


 
	
<meta>
<topic id="textshared01selectcertificatexhp" indexer="include">
<title id="tit" xml-lang="en-US">Select Certificate</title>
<filename>/text/shared/01/selectcertificate.xhp</filename>
</topic>
</meta>
<body>
<paragraph role="heading" id="par_idN10541" xml-lang="en-US" level="1" l10n="NEW">Select Certificate</paragraph>
<paragraph role="paragraph" id="par_idN10545" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Select the certificate that you want to <link href="text/shared/01/digitalsignatures.xhp">digitally sign</link> the current document with.</ahelp></paragraph>
<section id="howtoget">
<embed href="text/shared/00/00000401.xhp#digitalsigsel"/>
</section>
<embed href="text/shared/guide/digital_signatures.xhp#digital_signatures"/>
<bookmark xml-lang="en-US" branch="hid/XMLSECURITY_HID_XMLSEC_CTRL_CHOOSESIGNATURES" id="bm_id8177129" localize="false"/>
<paragraph role="heading" id="par_idN1056A" xml-lang="en-US" level="2" l10n="NEW">List</paragraph>
<paragraph role="paragraph" id="par_idN1056E" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Select the certificate that you want to digitally sign the current document with.</ahelp></paragraph>
<bookmark xml-lang="en-US" branch="hid/xmlsecurity:PushButton:RID_XMLSECDLG_CERTCHOOSER:BTN_VIEWCERT" id="bm_id5101168" localize="false"/>
<bookmark xml-lang="en-US" branch="hid/xmlsecurity:PushButton:RID_XMLSECTP_CERTPATH:BTN_VIEWCERT" id="bm_id3395794" localize="false"/>
<paragraph role="heading" id="par_idN10571" xml-lang="en-US" level="2" l10n="NEW">View Certificate</paragraph>
<paragraph role="paragraph" id="par_idN10575" xml-lang="en-US" l10n="NEW"><ahelp hid=".">Opens the <link href="text/shared/optionen/viewcertificate.xhp">View Certificate</link> dialog where you can examine the selected certificate.</ahelp></paragraph>
</body>
</helpdocument>
