2013-06-15 1 views
2

Je veux signer JAR avec mon code et SANS keystores - en utilisant seulement la clé de l'utilisateur privé (parce que j'ai vraiment beaucoup d'utilisateurs et de touches).Sign JAR par programme

J'ai trouvé le même question, mais il utilise des keystores, et je veux le faire en utilisant seulement PrivateKey ou String. Est-ce possible et existe-t-il des bibliothèques?

AJOUTER: Je vais essayer de clarifier la tâche. Par exemple, nous avons un utilisateur et un service. L'utilisateur crée un module, l'emballe en tant que JAR et le signe en utilisant sa propre clé privée qui est stockée localement dans certains DB sous la forme String.

Puis il l'envoie au service, et ce service connaît la clé publique de cet utilisateur (elle est également stockée dans la base de données). Et le service vérifie ce JAR.

Je ne wat utiliser keystores et alias parce que je vais devoir instancier des fichiers sur tous les JAR téléchargement

+0

Qu'est-ce qui est utilisé? GPG? – fge

+0

Actuellement, j'essaie d'utiliser les sources 'JarSigner', mais sans chance. Je veux utiliser une solution Java, car mon système doit être portable. Mais GPG peut convenir aussi – skayred

+0

Je demandais à propos de ce que votre «lot d'utilisateurs et de clés» utilisaient déjà, en fait. Vous pouvez jeter un coup d'oeil à la source du plugin Maven GPG si vous voulez utiliser GPG. – fge

Répondre

0

Je Signés pot en utilisant pom.xml je heureux si vous aider:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>ABC</groupId> 
    <artifactId>applet</artifactId> 
    <version>ABC</version> 
    <packaging>jar</packaging> 

    <name>applet</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <build> 
     <plugins> 

      <plugin> 
       <groupId>org.aaa.bbb</groupId> 
       <artifactId>keytool-maven-plugin</artifactId> 
       <executions> 
        <execution> 
         <goals> 
          <goal>genkey</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <keystore>./target/chkey</keystore> 
        <alias>ch</alias> 
        <dname>cn=Organization Name, o=Org, l=xyz, st=mm, c=US</dname> 
        <keypass>pass</keypass> 
        <storepass>pass</storepass> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-jarsigner-plugin</artifactId> 
       <version>1.2</version> 
       <executions> 
        <execution> 
         <id>sign</id> 
         <goals> 
          <goal>sign</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <keystore>./target/chkey</keystore> 
        <alias>ch</alias> 
        <storepass>pass</storepass> 
        <keypass>pass</keypass> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 

    <dependencies> 

     <dependency> 
      <groupId>java</groupId> 
      <artifactId>java-plugin</artifactId> 
      <version>jre-1.8</version> 
      <scope>provided</scope> 
     </dependency> 


    </dependencies> 
</project>