Die von Keytool generierte Keystore-Datei speichert Paare von privaten und öffentlichen Schlüsseln. Jedes im Schlüsselspeicher gespeicherte Paar oder Eintrag wird durch einen eindeutigen Alias referenziert. In Kürze:
Schlüsselspeichereintrag = privat + öffentliches Schlüsselpaar = durch einen Alias gekennzeichnet
Der Schlüsselspeicher schützt jeden privaten Schlüssel mit seinem individuellen Kennwort und die Integrität des gesamten Schlüsselspeichers mit einem (möglicherweise anderen) Kennwort.
Wenn Sie beispielsweise eine Android-Anwendung mit der Option "Signiertes Anwendungspaket exportieren" des Eclipse Android-Tools signieren, werden Sie aufgefordert, zuerst einen Schlüsselspeicher und dann einen einzelnen Alias / Eintrag / Paar aus diesem Schlüsselspeicher auszuwählen. Nachdem Sie die Kennwörter für den Keystore und den ausgewählten Alias angegeben haben, wird die App signiert und der öffentliche Schlüssel (das Zertifikat) für diesen Alias in die APK eingebettet.
Um Ihre Frage zu beantworten, können Sie ein Update für eine Anwendung, die mit dem Alias 'foo' signiert wurde, nur freigeben, indem Sie das Update erneut mit demselben Alias signieren. Wenn Sie den Schlüsselspeicher verlieren, in dem Ihr Alias gespeichert ist, können Sie keine aktualisierte Version Ihrer App veröffentlichen.
Es gibt jedoch eine Möglichkeit, eine App mit einem neuen Alias zu signieren. Dabei wird jedoch ein vorhandener Alias im Keystore mit keytool -keyclone geklont :
Erstellt einen neuen Schlüsselspeichereintrag mit demselben privaten Schlüssel und derselben Zertifikatskette wie der ursprüngliche Eintrag.
Der ursprüngliche Eintrag wird durch einen Alias identifiziert (standardmäßig "mykey", falls nicht angegeben). Der neue (Ziel-) Eintrag wird durch dest_alias identifiziert. Wenn in der Befehlszeile kein Zielalias angegeben wird, wird der Benutzer dazu aufgefordert.
Wenn sich das Kennwort für den privaten Schlüssel vom Kennwort für den Schlüsselspeicher unterscheidet, wird der Eintrag nur geklont, wenn ein gültiger Tastaturpass angegeben wird. Dies ist das Kennwort, mit dem der mit dem Alias verknüpfte private Schlüssel geschützt wird. Wenn in der Befehlszeile kein Schlüsselkennwort angegeben wird und sich das Kennwort für den privaten Schlüssel vom Kennwort für den Schlüsselspeicher unterscheidet, wird der Benutzer dazu aufgefordert. Falls gewünscht, kann der private Schlüssel im geklonten Eintrag mit einem anderen Kennwort geschützt werden. Wenn in der Befehlszeile keine neue Option angegeben wird, wird der Benutzer aufgefordert, das Kennwort des neuen Eintrags einzugeben (und kann festlegen, dass es dem privaten Schlüssel des geklonten Eintrags entspricht).
Mehr Informationen:
http://download.oracle.com/javase/1.5.0/docs/tooldocs/solaris/keytool.html
http://developer.android.com/guide/publishing/app-signing.html