<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE task PUBLIC "-//OASIS//DTD DITA Task//EN" "../dtd/task.dtd">
<task id="t_keystore-creating" xml:lang="en-us">
  <title>Creating a keystore</title>
  <shortdesc>Keys must be contained within a keystore. Keystores are easy to create from within the Signing and Keys
    view.</shortdesc>
  <prolog>
    <metadata>
      <keywords>
        <!--<indexterm></indexterm>-->
      </keywords>
    </metadata>
  </prolog>
  <taskbody>
    <steps>
           <step>
        <cmd>If necessary, open the Signing and Keys view by <ph product="webui android-studio">selecting <menucascade>
              <uicontrol>Window</uicontrol>
              <uicontrol>Show View</uicontrol>
              <uicontrol>Other</uicontrol>
            </menucascade> and then selecting <menucascade>
              <uicontrol>MOTODEV Studio</uicontrol>
              <uicontrol>Signing and Keys</uicontrol>
            </menucascade> from the list of views</ph>. Note that this view is part of the MOTODEV Studio for Android
          perspective and is thus normally opened when you switch to that perspective.</cmd>
      </step>

      <step>
        <cmd>In the Signing and Keys toolbar, click <image href="../images/KeystoreCreate.png"/> (Create
          Keystore).</cmd>
        <stepresult>The Create Keystore dialog is displayed.</stepresult>
      </step>
      <step>
        <cmd>Specify the name (including the path to the file) to be given to the keystore file using the
            <uicontrol>Keystore Filename</uicontrol> field.</cmd>
      </step>
      <step>
        <cmd>Choose a keystore type from the Keystore Type pull-down list. The available choices are: JKS (the standard
          Java keystore), JCEKS (a Java keystore that provides much stronger protection of private keys), or PKCS12 (a
          file format defined as part of the Public-Key Cryptography Standards [PKCS] that can be created and
          interpreted using the OpenSSL pkcs12 command).</cmd>
      </step>
      <step>
        <cmd>By default, the chosen keystore type is added to the keystore filename you specified as an extension. Clear
          this option if you don't want this extension to be automatically added.</cmd>
      </step>
      <step>
        <cmd>Provide a password to be used to protect the keystore using the <uicontrol>Keystore Password</uicontrol>
          and <uicontrol>Confirm Password</uicontrol> fields. You will be prompted to reenter this password whenever you
          add keys to or alter keys within the keystore.</cmd>
      </step>
      <step>
        <cmd>If you would like MOTODEV Studio to remember this keystore's password and automatically supply it whenever
          it is needed, select <uicontrol>Save this password</uicontrol>.</cmd>
      </step>
      <step>
        <cmd>Create the keystore. </cmd>
        <choices>
          <choice>Click <uicontrol>Finish</uicontrol> to create a new, empty keystore.</choice>
          <choice>Click <uicontrol>Next</uicontrol> if you would like to create the keystore and create a new key within
            that keystore. You will then be presented with a dialog asking for the characteristics of that new key;
            follow the instructions under <xref href="t_cert-key-generating.dita">Creating a key</xref>.</choice>
        </choices>
      </step>
    </steps>
  </taskbody>
</task>
