harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chris Gray (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6202) JarEntry.getCertificates() not working with JarEntryStream
Date Sat, 09 May 2009 18:40:45 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12707699#action_12707699
] 

Chris Gray commented on HARMONY-6202:
-------------------------------------

Basic problem seems to be that when the current file is a meta-file and the application calls
getNextEntry() the current file is not processed in any way, we just skip to the next entry.
So the example code passes over the entries for the *.DSA and *.SF files but does not store
read in the contents and create entries in the metaEntries map. So when JarVerifier.getCertificates()
is called it doesn't find any signatures ...


> JarEntry.getCertificates() not working with JarEntryStream
> ----------------------------------------------------------
>
>                 Key: HARMONY-6202
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6202
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>         Environment: x86/Linux, Eclipse Harmony plugin
>            Reporter: Chris Gray
>
> Following code fails on Harmony, i.e. prints "No certificates" even though the jar has
been signed with Sun's jarsigner tool. Code works on RI 1.4, fails on RI 1.5 (subject of Sun
bug report no. 6284489), works on RI 1.6.
> import java.io.BufferedInputStream;
> import java.io.FileInputStream;
> import java.util.Enumeration;
> import java.util.jar.*;
> class SignatureTest2 {
>   static public void main(String[] args) {
>    if (args.length == 0) {
>       System.out.println("Usage: SignatueTest2 path/to/jarfile.jar");
>    }
>     try {
>       String filename = args[0];
>       System.out.println("Opening file: " + filename);
>       System.out.println();
>       FileInputStream fis = new FileInputStream(filename);
>       BufferedInputStream bis = new BufferedInputStream(fis, 8192);
>       JarInputStream jis = new JarInputStream(bis);
>       Manifest m = jis.getManifest();
>       JarEntry je = jis.getNextJarEntry();
>       while (je != null) {
>         System.out.println("JarEntry: " + je);
>         if (!je.isDirectory()) {
>           String name = je.getName();
>           if (!name.startsWith("META-INF/")) {
>             jis.closeEntry();
>             java.security.cert.Certificate[] certs = je.getCertificates();
>             if (certs == null) {
>               System.out.println("No certificates");
>             }
>             else {
>               System.out.println("Certificates:");
>               for (int i = 0; i < certs.length; ++i)
>                 System.out.println(certs[i].toString());
>             }
>             System.out.println();
>           }
>         }
>         je = jis.getNextJarEntry();
>       }
>     }
>     catch (Throwable t) {
>       t.printStackTrace();
>     }
>   }
> }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message