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 Tue, 12 May 2009 14:03:45 GMT

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

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

Following Works For Me(TM), i.e. it causes the appropriate information to be passed to the
JarVerifier:
In JarInputStream.getNextEntry, at the start of the first else clause (i.e. if mEntry is null),
if isMeta is true then call read([BII) until the entry is exhausted (i.e. it returns null).
Then call super.getNextEntry as before.

I would post code but I guess I should do paperwork first ...

> 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