예제 #1
0
  public void testBrokenTimestampingAutority(TimestampingMode mode) throws Exception {
    File sourceFile = new File("target/test-classes/wineyes.exe");
    File targetFile =
        new File(
            "target/test-classes/wineyes-timestamped-broken-" + mode.name().toLowerCase() + ".exe");

    FileUtils.copyFile(sourceFile, targetFile);

    PEFile peFile = new PEFile(targetFile);

    PESigner signer = new PESigner(getKeyStore(), ALIAS, PRIVATE_KEY_PASSWORD);
    signer.withDigestAlgorithm(DigestAlgorithm.SHA1);
    signer.withTimestamping(true);
    signer.withTimestampingMode(mode);
    signer.withTimestampingAutority("http://github.com");

    try {
      signer.sign(peFile);
      fail("TimestampingException not thrown");
    } catch (TimestampingException e) {
      // expected
    }

    peFile = new PEFile(targetFile);
    List<CMSSignedData> signatures = peFile.getSignatures();
    assertNotNull(signatures);
    assertTrue(signatures.isEmpty());
  }
예제 #2
0
  public void testInvalidTimestampingURL() throws Exception {
    PEFile peFile = new PEFile(new File("target/test-classes/wineyes.exe"));

    PESigner signer = new PESigner(getKeyStore(), ALIAS, PRIVATE_KEY_PASSWORD);
    signer.withDigestAlgorithm(DigestAlgorithm.SHA1);
    signer.withTimestamping(true);
    signer.withTimestampingMode(TimestampingMode.RFC3161);
    signer.withTimestampingAutority("example://example.com");

    try {
      signer.sign(peFile);
      fail("IllegalArgumentException not thrown");
    } catch (IllegalArgumentException e) {
      // expected
    }
  }