Example usage for org.apache.commons.lang.time DateUtils addYears

List of usage examples for org.apache.commons.lang.time DateUtils addYears

Introduction

In this page you can find the example usage for org.apache.commons.lang.time DateUtils addYears.

Prototype

public static Date addYears(Date date, int amount) 

Source Link

Document

Adds a number of years to a date returning a new object.

Usage

From source file:mitm.common.security.certificate.GenerateTestCertificates.java

private void generateCertificateCriticalExtendedKeyUsage() throws Exception {
    X509CertificateBuilder certificateBuilder = securityFactory.createX509CertificateBuilder();

    String encodedPrivateKey = "30820276020100300d06092a864886f70d0101010500048202603082025c"
            + "0201000281810096990cdd93c7bd2ca4d406285833cd356cc668f2571338"
            + "46fb4dfc885f275bdfb9bf45d539f89e826e442c0a750206a33d40600711"
            + "09ba96eb400710edf90590604e13ff7b624001b4b75c3fd388d18bcd71b4"
            + "c3e4a06c08da3fed5365db5d08cfb10321235da904886ea0329dbf041fa1"
            + "890f97d2b53a366f643dd344cc2e69020301000102818050ee10d6e67ad9"
            + "73ab6471a6aeb7afd8bd0ae70d0cb43c7310cbf9210419afaacc3438fffc"
            + "765a2077c754ef8dafb807737c2bdec04e3d22ab6bae206ff27a05284a96"
            + "015d5437739ffdb6801f537b7b7406e6088a56324105bce1fcfc86bc8a29"
            + "e9adb0ae4152d23f695bfe585557d73da61bf7eb7c1bbdc164afed60e54e"
            + "bd024100ca4e8e4e7e905e4b273d1381f4323ce673d5d33ce5a75f46d719"
            + "8c4ea1bcc13b621f314fa6166cc6193ff912814c54a717b93804b258ec44"
            + "d0a212d371078cdf024100be9133919b1093a3d8c7afa1ff70ab769076c9"
            + "aeb5c548cdc9aef63812a57eccf77f0def9c979cfaf117d8ffb454f823de"
            + "245a1b90da34adaf57b8a561fde5b702407d8dcd51b7c89f4ca2f88bbfce"
            + "2ed38eee7ad8d3656fbf78b68c1b80bd6de8ba9305ead394af3c28a1890b"
            + "6a49a676af10d1198c08a7995287ecde242d74d31f024032a09ac5ad1f8b"
            + "49b536dfc736f8b4e4cbde7318523c366a4d9188e23eb9eee4ff3fa6f128"
            + "75f3038bf79cf3d9f1d4f69a76a7e5b8e6efa5d0f68a1c8ddb0923024100"
            + "b44f03887aa2d95203f3dee44298b12b90c163bffebdc077551208c53987"
            + "11e35c60f8d6348f7fd51f7a384bb397ead4957e37b0440addecc19f9fac" + "b129564b";

    String encodedPublicKey = "30819f300d06092a864886f70d010101050003818d003081890281810096"
            + "990cdd93c7bd2ca4d406285833cd356cc668f257133846fb4dfc885f275b"
            + "dfb9bf45d539f89e826e442c0a750206a33d4060071109ba96eb400710ed"
            + "f90590604e13ff7b624001b4b75c3fd388d18bcd71b4c3e4a06c08da3fed"
            + "5365db5d08cfb10321235da904886ea0329dbf041fa1890f97d2b53a366f" + "643dd344cc2e690203010001";

    PrivateKey privateKey = decodePrivateKey(encodedPrivateKey);
    PublicKey publicKey = decodePublicKey(encodedPublicKey);

    X500PrincipalBuilder subjectBuilder = new X500PrincipalBuilder();

    String email = "test@example.com";

    subjectBuilder.setCommonName("Valid certificate");
    subjectBuilder.setEmail(email);/* w  w w.j  a  v a  2  s  .  co  m*/
    subjectBuilder.setCountryCode("NL");
    subjectBuilder.setLocality("Amsterdam");
    subjectBuilder.setState("NH");

    AltNamesBuilder altNamesBuider = new AltNamesBuilder();
    altNamesBuider.setRFC822Names(email);

    X500Principal subject = subjectBuilder.buildPrincipal();
    GeneralNames altNames = altNamesBuider.buildAltNames();

    // use TreeSet because we want a deterministic certificate (ie. hash should not change)
    Set<KeyUsageType> keyUsage = new TreeSet<KeyUsageType>();

    keyUsage.add(KeyUsageType.DIGITALSIGNATURE);
    keyUsage.add(KeyUsageType.KEYENCIPHERMENT);
    keyUsage.add(KeyUsageType.NONREPUDIATION);

    Set<ExtendedKeyUsageType> extendedKeyUsage = new TreeSet<ExtendedKeyUsageType>();

    extendedKeyUsage.add(ExtendedKeyUsageType.CLIENTAUTH);
    extendedKeyUsage.add(ExtendedKeyUsageType.EMAILPROTECTION);

    BigInteger serialNumber = new BigInteger("116a448f117ff69fe4f2d4d38f689d7", 16);

    Date now = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK)
            .parse("21-Nov-2007 10:38:35");

    certificateBuilder.setSubject(subject);
    certificateBuilder.setAltNames(altNames, true);
    certificateBuilder.setKeyUsage(keyUsage, true);
    certificateBuilder.setExtendedKeyUsage(extendedKeyUsage, true /* critical */);
    certificateBuilder.setNotBefore(DateUtils.addDays(now, -20));
    certificateBuilder.setNotAfter(DateUtils.addYears(now, 20));
    certificateBuilder.setPublicKey(publicKey);
    certificateBuilder.setSerialNumber(serialNumber);
    certificateBuilder.setSignatureAlgorithm("SHA1WithRSAEncryption");
    certificateBuilder.addSubjectKeyIdentifier(true);

    X509Certificate certificate = certificateBuilder.generateCertificate(caPrivateKey, caCertificate);

    assertNotNull(certificate);

    certificates.add(certificate);

    Certificate[] chain = new Certificate[] { certificate, caCertificate, rootCertificate };

    keyStore.setKeyEntry("CriticalEKU", privateKey, null, chain);
}

From source file:gov.nih.nci.firebird.selenium2.tests.investigator.annual.registration.SubmitAnnualRegistrationForReviewTest.java

private AnnualForm1572Tab addLaboratorCertificate(AnnualForm1572Tab form1572Tab,
        OrganizationAssociation clinicalLab) {
    LaboratoryCertificate laboratorCertificate = new LaboratoryCertificate(LaboratoryCertificateType.CLIA);
    laboratorCertificate.setEffectiveDate(new Date(0));
    laboratorCertificate.setExpirationDate(DateUtils.addYears(new Date(), 99));
    laboratorCertificate.setCertificateFile(FirebirdFileFactory.getInstance().create());
    ((ClinicalLaboratory) clinicalLab.getOrganizationRole()).addCertificate(laboratorCertificate);
    dataSet.update(clinicalLab);/*from w  w  w  .jav  a2  s .co m*/
    return form1572Tab.getPage().clickOverviewTab().getPage().clickForm1572Tab();
}

From source file:com.nec.harvest.controller.SuihController.java

/**
 * /* w ww. ja  v a  2  s .c o m*/
 * 
 * @param userOrgCode
 * @param businessDay
 * @param unitDept
 * @param deptCode
 * @param year
 * @param quarter
 * @param model
 * @return
 */
private String processingSuih(String userOrgCode, Date businessDay, String unitDept, String deptCode, Date year,
        int quarter, Model model) {
    // check department code empty
    final String CURRENT_MONTHLIES = "monthlies";

    // get three month in quarter business
    String[] monthiesCurrentQuarter = DateUtil.getMonthliesOfQuarter(year, quarter);
    model.addAttribute(CURRENT_MONTHLIES, monthiesCurrentQuarter);

    // get final tighten
    Date finalTighten = checkFinalMonthlyTighten(businessDay, model);
    if (finalTighten == null) {
        return getViewName();
    }

    List<String> listOrgCodes = null;
    try {
        listOrgCodes = organizationService.findOrgsByDepartmentCode(unitDept);
    } catch (IllegalArgumentException | ObjectNotFoundException ex) {
        logger.warn(ex.getMessage());

    } catch (ServiceException ex) {
        logger.error(ex.getMessage(), ex);

        // ???????????
        model.addAttribute(ERROR_MESSAGE, getSystemError());
        model.addAttribute(ERROR, true);
        return getViewName();
    }
    // ???[?]?????
    if (!availableNext(quarter, year, model, finalTighten, listOrgCodes, businessDay)) { // enable, disable Next
        return getViewName();
    }

    // ??????????
    if (!availablePrevious(quarter, year, model, finalTighten, listOrgCodes)) { // enable, disable Previous
        return getViewName();
    }

    if (!unitDept.equals(deptCode)) {
        try {
            listOrgCodes = organizationService.findOrgsByDepartmentCode(deptCode);
        } catch (IllegalArgumentException | ObjectNotFoundException ex) {
            logger.warn(ex.getMessage());

        } catch (ServiceException ex) {
            logger.error(ex.getMessage(), ex);

            // ???????????
            model.addAttribute(ERROR_MESSAGE, getSystemError());
            model.addAttribute(ERROR, true);
            return getViewName();
        }
    }

    // get startMonth
    String currentYear = DateFormatUtil.format(year, "yyyy");
    String startMonth = currentYear.concat("04");

    // get endMonth 
    String nextYear = DateFormatUtil.format(DateUtils.addYears(year, 1), "yyyy");
    String endMonth = nextYear.concat("03");
    int countMonth = 12;

    try {
        Date endDate = DateFormatUtil.parse(endMonth, DateFormat.DATE_WITHOUT_DAY);
        if (endDate.after(businessDay)) {
            countMonth = countMonth - DateUtil.monthsBetween(businessDay, endDate);
            endMonth = DateFormatUtil.format(businessDay, DateFormat.DATE_WITHOUT_DAY);
        }
    } catch (NullPointerException | IllegalArgumentException | ParseException ex) {
        logger.warn(ex.getMessage());
    }

    // ???jiseki??
    Map<String, List<VJiseki>> mapSuis = null;
    List<VJiseki> listSuisYear = null;

    try {
        if (CollectionUtils.isNotEmpty(listOrgCodes)) {
            listSuisYear = actualViewService.findByPeriodMonthlyAndOrgCodes(startMonth, endMonth, listOrgCodes);
        }
    } catch (IllegalArgumentException | ObjectNotFoundException | NullPointerException ex) {
        logger.warn(ex.getMessage());

    } catch (ServiceException ex) {
        logger.error(ex.getMessage(), ex);

        // ???????????
        model.addAttribute(ERROR_MESSAGE, getSystemError());
        model.addAttribute(ERROR, true);
        return getViewName();
    }

    // ????
    try {
        mapSuis = getMapOfSuihsByMonthly(listSuisYear,
                DateFormatUtil.parse(startMonth, DateFormat.DATE_WITHOUT_DAY), countMonth);
    } catch (NullPointerException | IllegalArgumentException | ParseException ex) {
        logger.warn(ex.getMessage());
    }

    // find data budget performance
    Map<String, BudgetPerformanceBean> mapBudgetPerformance = null;
    try {
        mapBudgetPerformance = budgetPerformanceService.findByOrgCodesAndPeriodMonthAndKmkCodeJs(listOrgCodes,
                startMonth, endMonth, Constants.DEFAULT_KMKCODEJ_K7111, Constants.DEFAULT_KMKCODEJ_K7521,
                Constants.DEFAULT_KMKCODEJ_K8110, Constants.DEFAULT_KMKCODEJ_K8210,
                Constants.DEFAULT_KMKCODEJ_K8310);
    } catch (IllegalArgumentException | ObjectNotFoundException ex) {
        logger.warn(ex.getMessage());

    } catch (ServiceException ex) {
        logger.error(ex.getMessage(), ex);

        // ???????????
        model.addAttribute(ERROR_MESSAGE, getSystemError());
        model.addAttribute(ERROR, true);
        return getViewName();
    }

    // ???
    Map<String, Double> mapInventory = null;
    try {
        mapInventory = inventoryService.findByPeriodMonthAndOrgCodes(startMonth, endMonth, listOrgCodes);
    } catch (IllegalArgumentException | ObjectNotFoundException ex) {
        logger.warn(ex.getMessage());

    } catch (ServiceException ex) {
        logger.error(ex.getMessage(), ex);

        // ???????????
        model.addAttribute(ERROR_MESSAGE, getSystemError());
        model.addAttribute(ERROR, true);
        return getViewName();
    }

    // ??
    calculateSuih(mapSuis, finalTighten, businessDay, mapBudgetPerformance, mapInventory, quarter, model);
    return getViewName();
}

From source file:gov.nih.nci.firebird.selenium2.tests.investigator.annual.registration.SubmitAnnualRegistrationForReviewTest.java

private void checkForRenewalDate(boolean withinRenewalWindow) {
    renewal = dataSet.reloadObject(renewal);
    Date expectedRenewalDate;//from w ww .ja  v a  2s .c  o  m
    if (withinRenewalWindow) {
        expectedRenewalDate = DateUtils.addYears(renewal.getDueDate(), 1);
    } else {
        expectedRenewalDate = DateUtils.addYears(new Date(), 1);
    }
    assertEquals(DateUtils.truncate(expectedRenewalDate, Calendar.DATE), renewal.getRenewalDate());
}

From source file:mitm.common.security.certificate.GenerateTestCertificates.java

private void generateCertificateKeyUsageNotForEncryption() throws Exception {
    X509CertificateBuilder certificateBuilder = securityFactory.createX509CertificateBuilder();

    String encodedPrivateKey = "30820276020100300d06092a864886f70d0101010500048202603082025c"
            + "0201000281810096383c89ad7b3c3be9dfcb24c1ba2b19f681847eaf862c"
            + "eec3cb2daf20da3f68f30221b46444c259228cc84f35095af19d2496a486"
            + "b4e818ce17241dd792a6c6ad07f8601c728f71f8016e1dbc5905fade3ecf"
            + "37b6374f4668bb3a5de16059125cea11ef3bd712a375dd33894670faa18b"
            + "8c733227a530ec569fcb5ade02523d020301000102818030202c24df934f"
            + "a4d234845c6e443a72c2ea938c12a7a5d5889c9b32341037a863d2170237"
            + "ed5f66370f6b4d14ecbe5a11c21b10f2a71a8477e22a0bf578623d5e961d"
            + "41151118d6114296baa55c479a33de26ef872f61eb59388bddb43c970614"
            + "52983edf79e71def89879820f06667b237be04b1fb18eaa203fb59d82ebc"
            + "71024100c9b7820310a62a3815564519a038bcfd99965ed9adf494214fca"
            + "d0d08019b9ba6821bcfc9faf448f1650e9e7aeba6b9ce3e7d6f9449c1897"
            + "d7dd7d0f4e8c39fb024100bea50896dc44c9cd710611e229fd7fe01c06f8"
            + "db7ea4428c99b243ba26937eaedfd9fae5eed02e292a8a4c7092320e29dc"
            + "143223b85cfeb43efbb1603ebce72702407bc7f82819575e20fc36ec4045"
            + "698bcfb327eb1c78fad4cb7c4360d0114bb805035170bf34de409bed7dc9"
            + "8b3a557b23d356b93c4d35dc81911d81589b42c17102406eb7cfc6358469"
            + "a2bb8a27e6ae364006baa03df4d396b7e389fb62a4007556745f22ec388f"
            + "3a2e24d044e361d935e2cde2b783eb04ce5549feee13b46e9b2caf024100"
            + "a8c35546c2241ce9b90b14c667d2b83512a6ad3b50f1511696c3eb7f608b"
            + "c292bad19c4fe11b466a045ebfdb92f371199369e22e5ce6a16578c9a25c" + "7b67e997";

    String encodedPublicKey = "30819f300d06092a864886f70d010101050003818d003081890281810096"
            + "383c89ad7b3c3be9dfcb24c1ba2b19f681847eaf862ceec3cb2daf20da3f"
            + "68f30221b46444c259228cc84f35095af19d2496a486b4e818ce17241dd7"
            + "92a6c6ad07f8601c728f71f8016e1dbc5905fade3ecf37b6374f4668bb3a"
            + "5de16059125cea11ef3bd712a375dd33894670faa18b8c733227a530ec56" + "9fcb5ade02523d0203010001";

    PrivateKey privateKey = decodePrivateKey(encodedPrivateKey);
    PublicKey publicKey = decodePublicKey(encodedPublicKey);

    X500PrincipalBuilder subjectBuilder = new X500PrincipalBuilder();

    String email = "test@example.com";

    subjectBuilder.setCommonName("Valid certificate");
    subjectBuilder.setEmail(email);/*from   www.j a v a2 s  . c  o  m*/
    subjectBuilder.setCountryCode("NL");
    subjectBuilder.setLocality("Amsterdam");
    subjectBuilder.setState("NH");

    AltNamesBuilder altNamesBuider = new AltNamesBuilder();
    altNamesBuider.setRFC822Names(email);

    X500Principal subject = subjectBuilder.buildPrincipal();
    GeneralNames altNames = altNamesBuider.buildAltNames();

    // use TreeSet because we want a deterministic certificate (ie. hash should not change)
    Set<KeyUsageType> keyUsage = new TreeSet<KeyUsageType>();

    keyUsage.add(KeyUsageType.DIGITALSIGNATURE);
    keyUsage.add(KeyUsageType.NONREPUDIATION);

    Set<ExtendedKeyUsageType> extendedKeyUsage = new TreeSet<ExtendedKeyUsageType>();

    extendedKeyUsage.add(ExtendedKeyUsageType.CLIENTAUTH);
    extendedKeyUsage.add(ExtendedKeyUsageType.EMAILPROTECTION);

    BigInteger serialNumber = new BigInteger("1178c336c7b51cadd4ccecdd14daf22", 16);

    Date now = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK)
            .parse("21-Nov-2007 10:38:35");

    certificateBuilder.setSubject(subject);
    certificateBuilder.setAltNames(altNames, true);
    certificateBuilder.setKeyUsage(keyUsage, true);
    certificateBuilder.setExtendedKeyUsage(extendedKeyUsage, true /* critical */);
    certificateBuilder.setNotBefore(DateUtils.addDays(now, -20));
    certificateBuilder.setNotAfter(DateUtils.addYears(now, 20));
    certificateBuilder.setPublicKey(publicKey);
    certificateBuilder.setSerialNumber(serialNumber);
    certificateBuilder.setSignatureAlgorithm("SHA1WithRSAEncryption");
    certificateBuilder.addSubjectKeyIdentifier(true);

    X509Certificate certificate = certificateBuilder.generateCertificate(caPrivateKey, caCertificate);

    assertNotNull(certificate);

    certificates.add(certificate);

    Certificate[] chain = new Certificate[] { certificate, caCertificate, rootCertificate };

    keyStore.setKeyEntry("KeyUsageNotForEncryption", privateKey, null, chain);
}

From source file:gov.nih.nci.firebird.selenium2.tests.protocol.registration.ReviseReturnedRegistrationFormsTest.java

private LaboratoryCertificate addLabCertificate(LabCertificatesDialog dialog) throws IOException {
    LaboratoryCertificate certificate = new LaboratoryCertificate(LaboratoryCertificateType.CLP);
    certificate.setEffectiveDate(DateUtils.addYears(new Date(), -1));
    certificate.setExpirationDate(DateUtils.addYears(new Date(), 1));
    dialog.getHelper().fillOutCertificate(certificate);
    dialog.setUploadFile(createTemporaryFile());
    dialog.clickSave();/*from   ww  w .j a  va  2  s . co m*/
    dialog.getHelper().checkCertificateDisplayed(certificate);
    assertTrue(dialog.getHelper().getListing(certificate).hasDownloadLink());
    return certificate;
}

From source file:com.nridge.connector.common.con_com.crawl.CrawlQueue.java

/**
 * Clears the active state from the queue file system.  This involves
 * clearing the crawl id, extraction complete flag, crawl type and
 * date last modified.  Finally, this method will remove the queue
 * lock file.//from   www  .  j  av  a 2  s.  c o  m
 *
 * @return <i>true</i> if lock file is successfully removed or
 *          <i>false</i> otherwise.
 */
public boolean clear() {
    Logger appLogger = mAppMgr.getLogger(this, "clear");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    mCrawlId = 0L;
    mCrawlType = StringUtils.EMPTY;
    mPhaseComplete.put(Connector.PHASE_EXTRACT, new AtomicBoolean(false));
    mPhaseComplete.put(Connector.PHASE_TRANSFORM, new AtomicBoolean(false));
    mPhaseComplete.put(Connector.PHASE_PUBLISH, new AtomicBoolean(false));
    mCrawlLastModified = DateUtils.addYears(new Date(), CRAWL_BEGINNING_OF_TIME);

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);

    return releaseLock();
}

From source file:mitm.common.security.certificate.GenerateTestCertificates.java

private void generateCertificateKeyUsageNotForSigning() throws Exception {
    X509CertificateBuilder certificateBuilder = securityFactory.createX509CertificateBuilder();

    String encodedPrivateKey = "30820278020100300d06092a864886f70d0101010500048202623082025e"
            + "02010002818100c5ca31e3581e600cd09c7892837aecedc10d4b5eeb9d1d"
            + "77ac0ab497deeb842b6fe3cdd3d021bb9680691310387259acc73e6d8173"
            + "fa734069d0d9216c58eae254f68a075f8f9fa99c77c0383f1736be7e697a"
            + "859f476de03c54cb171e984f29b42813244625ff75916bb66b2839cfb661"
            + "acafbf045b08d682544c3a832e9f6102030100010281805a7f5328344f61"
            + "9f3b6bfc76fd15a78679483dee265bf2f9a88c15694fa3ef0b78dc8076a3"
            + "ca6b6c4740cc6a25899ca2435fbaf6fa3be3b3db36a5c277328ff544736c"
            + "6042e589f910f3c1df23701dec59a8e2679cde9e9984fc6032b6c8734416"
            + "07f062afdd59ac5d48a902b02915892d8b07ed222ba63986e02c7c2b3e3a"
            + "09024100f252c537b30837deb16283ac2691229a9d1a90d0832e9717a6b9"
            + "7321026d8a9ed001d0ce192794e1a1466371cec0e68f06a3def7daed21a0"
            + "32fc101021e98e3f024100d0f3fa76613b4320d47817741841c4bd36c19a"
            + "4a01bb57c39e854a4678d237e08b27ff4778eca5440e04856f64be56bc8b"
            + "67b42d32f3450fb63d2d5be1b3aa5f024100a8a1cf1af6dd063c54073188"
            + "908239a98d20da9c305e30c945be128f6b281dea6ce8868d9655c436cc4b"
            + "b69291860e2c843b6fc3de375d4a2590e200c808c7730241008e673832a5"
            + "61360691c6a6754072d21a01cf3fcf600ec569540792ef2438604c6f89fa"
            + "b842f9444875252fab1305852749fa8b18a2b8984074fa8c8729f2c01102"
            + "4100808c7c7d221cd46df7a56112b0fd424ca4b2755a416bf8ba23a7b292"
            + "253157c35eac72069a07b0145cc48bb3f15cc3f2b1e924be4af863801ba3" + "ad0d909505c8";

    String encodedPublicKey = "30819f300d06092a864886f70d010101050003818d0030818902818100c5"
            + "ca31e3581e600cd09c7892837aecedc10d4b5eeb9d1d77ac0ab497deeb84"
            + "2b6fe3cdd3d021bb9680691310387259acc73e6d8173fa734069d0d9216c"
            + "58eae254f68a075f8f9fa99c77c0383f1736be7e697a859f476de03c54cb"
            + "171e984f29b42813244625ff75916bb66b2839cfb661acafbf045b08d682" + "544c3a832e9f610203010001";

    PrivateKey privateKey = decodePrivateKey(encodedPrivateKey);
    PublicKey publicKey = decodePublicKey(encodedPublicKey);

    X500PrincipalBuilder subjectBuilder = new X500PrincipalBuilder();

    String email = "test@example.com";

    subjectBuilder.setCommonName("Valid certificate");
    subjectBuilder.setEmail(email);/*from www .  jav a 2s  .  com*/
    subjectBuilder.setCountryCode("NL");
    subjectBuilder.setLocality("Amsterdam");
    subjectBuilder.setState("NH");

    AltNamesBuilder altNamesBuider = new AltNamesBuilder();
    altNamesBuider.setRFC822Names(email);

    X500Principal subject = subjectBuilder.buildPrincipal();
    GeneralNames altNames = altNamesBuider.buildAltNames();

    // use TreeSet because we want a deterministic certificate (ie. hash should not change)
    Set<KeyUsageType> keyUsage = new TreeSet<KeyUsageType>();

    keyUsage.add(KeyUsageType.KEYENCIPHERMENT);

    Set<ExtendedKeyUsageType> extendedKeyUsage = new TreeSet<ExtendedKeyUsageType>();

    extendedKeyUsage.add(ExtendedKeyUsageType.CLIENTAUTH);
    extendedKeyUsage.add(ExtendedKeyUsageType.EMAILPROTECTION);

    BigInteger serialNumber = new BigInteger("1178c38151374d6c4b29f891b9b4a77", 16);

    Date now = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK)
            .parse("21-Nov-2007 10:38:35");

    certificateBuilder.setSubject(subject);
    certificateBuilder.setAltNames(altNames, true);
    certificateBuilder.setKeyUsage(keyUsage, true);
    certificateBuilder.setExtendedKeyUsage(extendedKeyUsage, true /* critical */);
    certificateBuilder.setNotBefore(DateUtils.addDays(now, -20));
    certificateBuilder.setNotAfter(DateUtils.addYears(now, 20));
    certificateBuilder.setPublicKey(publicKey);
    certificateBuilder.setSerialNumber(serialNumber);
    certificateBuilder.setSignatureAlgorithm("SHA1WithRSAEncryption");
    certificateBuilder.addSubjectKeyIdentifier(true);

    X509Certificate certificate = certificateBuilder.generateCertificate(caPrivateKey, caCertificate);

    assertNotNull(certificate);

    certificates.add(certificate);

    Certificate[] chain = new Certificate[] { certificate, caCertificate, rootCertificate };

    keyStore.setKeyEntry("KeyUsageNotForSigning", privateKey, null, chain);
}

From source file:mitm.common.security.certificate.GenerateTestCertificates.java

private void generateCertificateKeyUsageOnlyNonRepudiation() throws Exception {
    X509CertificateBuilder certificateBuilder = securityFactory.createX509CertificateBuilder();

    String encodedPrivateKey = "30820277020100300d06092a864886f70d0101010500048202613082025d"
            + "02010002818100b342cf47e9e631e987a91cd281303c79be1ee94355e439"
            + "4a11606b740e30752eedd3a4d4c476963be7a329d7c92ed1f818f862389b"
            + "2c6bbec1b3f37e83a19aa05444d89c0d3bf7e567368320d1c1f4f1ef53c0"
            + "cb939f1c5cd01d4a8f4f637f0c4b16ff8e6ee4ba3beb4beddfc588ae1490"
            + "414dcaf1277f9c3287c9ea77897219020301000102818059a6a813c71ea1"
            + "07b21919990d931a2ba8b1bce7382593a13f5f815de15acac055a0eb669d"
            + "7ad157d458fdac35a97cc91f73d96b85ef8953357cd1e20be2de79470d67"
            + "841c79736d3938cf751816e214c176932d1ba26158d80da6f3f5ba61ac54"
            + "c1c9446435b2a0ef12b5cf25a03eabd931995175d40fe6aaef17b7b46bb8"
            + "01024100ff909d5f9ae1d2d3317137c9a9d775c0bdbf66b88b4a5d4893a4"
            + "ad9c7be321b78f00e76525e4269f0c1529750e87a4d4d6e5ac20e86a7095"
            + "c3441663ccb5f5f9024100b390f04e1944969dc3c05a4a699e6f9ae3e28b"
            + "e88d5d749271c849f4ca044648bff99de49257d07bcde0900a46294e233b"
            + "689bd447ce1280c1f3034416b5e521024100acb70c54677504a92c39eacd"
            + "045693c30db983ef665b7c8da7125d2e6b5f8612eab75eaab21feda60161"
            + "6fe2274eaeac150ba4f79c7b0ad97bdcd110e37179e9024100a17326ed41"
            + "80cedf68bad133e8c50059c69dd1e7b4fb1b2df4c9fddcefaa6a3b4d08b5"
            + "b366f537c9a8f148f143e62d9036013762e570de68107a5c2c633306a102"
            + "400cb68f16900107b2d2db6175807a05261caa05cf5bb14bcbafd9202cc4"
            + "5f75922185187c30f95d4ce5f44481d59174548e5bddd7bfe2896e6401a8" + "ed79797fed";

    String encodedPublicKey = "30819f300d06092a864886f70d010101050003818d0030818902818100b3"
            + "42cf47e9e631e987a91cd281303c79be1ee94355e4394a11606b740e3075"
            + "2eedd3a4d4c476963be7a329d7c92ed1f818f862389b2c6bbec1b3f37e83"
            + "a19aa05444d89c0d3bf7e567368320d1c1f4f1ef53c0cb939f1c5cd01d4a"
            + "8f4f637f0c4b16ff8e6ee4ba3beb4beddfc588ae1490414dcaf1277f9c32" + "87c9ea778972190203010001";

    PrivateKey privateKey = decodePrivateKey(encodedPrivateKey);
    PublicKey publicKey = decodePublicKey(encodedPublicKey);

    X500PrincipalBuilder subjectBuilder = new X500PrincipalBuilder();

    String email = "test@example.com";

    subjectBuilder.setCommonName("Valid certificate");
    subjectBuilder.setEmail(email);/*  w  w w. jav  a2  s.c  om*/
    subjectBuilder.setCountryCode("NL");
    subjectBuilder.setLocality("Amsterdam");
    subjectBuilder.setState("NH");

    AltNamesBuilder altNamesBuider = new AltNamesBuilder();
    altNamesBuider.setRFC822Names(email);

    X500Principal subject = subjectBuilder.buildPrincipal();
    GeneralNames altNames = altNamesBuider.buildAltNames();

    // use TreeSet because we want a deterministic certificate (ie. hash should not change)
    Set<KeyUsageType> keyUsage = new TreeSet<KeyUsageType>();

    keyUsage.add(KeyUsageType.NONREPUDIATION);

    Set<ExtendedKeyUsageType> extendedKeyUsage = new TreeSet<ExtendedKeyUsageType>();

    extendedKeyUsage.add(ExtendedKeyUsageType.CLIENTAUTH);
    extendedKeyUsage.add(ExtendedKeyUsageType.EMAILPROTECTION);

    BigInteger serialNumber = new BigInteger("1178c3b653829e895acb7100eb1f627", 16);

    Date now = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK)
            .parse("21-Nov-2007 10:38:35");

    certificateBuilder.setSubject(subject);
    certificateBuilder.setAltNames(altNames, true);
    certificateBuilder.setKeyUsage(keyUsage, true);
    certificateBuilder.setExtendedKeyUsage(extendedKeyUsage, true /* critical */);
    certificateBuilder.setNotBefore(DateUtils.addDays(now, -20));
    certificateBuilder.setNotAfter(DateUtils.addYears(now, 20));
    certificateBuilder.setPublicKey(publicKey);
    certificateBuilder.setSerialNumber(serialNumber);
    certificateBuilder.setSignatureAlgorithm("SHA1WithRSAEncryption");
    certificateBuilder.addSubjectKeyIdentifier(true);

    X509Certificate certificate = certificateBuilder.generateCertificate(caPrivateKey, caCertificate);

    assertNotNull(certificate);

    certificates.add(certificate);

    Certificate[] chain = new Certificate[] { certificate, caCertificate, rootCertificate };

    keyStore.setKeyEntry("KeyUsageOnlyNonRepudiation", privateKey, null, chain);
}

From source file:mitm.common.security.certificate.GenerateTestCertificates.java

/**
 * Generates a valid certificate/*  w w w  .  j  av a  2  s  .  co m*/
 * 
 * @throws Exception
 */
private void generateValidCertificateUppercaseEmail() throws Exception {
    X509CertificateBuilder certificateBuilder = securityFactory.createX509CertificateBuilder();

    String encodedPrivateKey = "30820278020100300d06092a864886f70d0101010500048202623082025e"
            + "02010002818100cc65b29afd51609fb23b4968518b54fe26f41519dfad63"
            + "1e1a5e240bbd57c133bcbf98572f533263294a31ba77b1f56abeeff2ce5e"
            + "02f0d1c07d23464a096e06ea8d643f7205b7002f9a6ba370493b27217cd0"
            + "e5e0577cf305557cdbe7c6602badba2ae297493e75f165d2d2340fad59b7"
            + "ee0d7c05b231379aad7854c873f703020301000102818100a90547e6a6a7"
            + "8e91405f8a5a7b640e8a8447bed340862eba8bef613b5bfd9f445b46cc80"
            + "fc1f7e4145b996d9ad75398e660a21ecc90d017b5203a911ccd373694628"
            + "11f5ef0e96152fa85a1e38901ef41ee675c4de1c7ce2ed2e2af84bb8f91b"
            + "9936f699071b24e58cf44746547fee72a7d869333267dbf17fa3ac4316c2"
            + "6b91024100ed1d02ad8294c88c6e1dd376080e2265b0b872c8913ec7d735"
            + "a07be89c5432b37417265e75e388122edb4d430adc116d745824e599f8c9"
            + "9e96a5ee09e8beaf7d024100dcad92821ff13e18942db08ca02d74ecb86a"
            + "1a48c9807be5a86197361851c259c89cfb46c78f51c52558230bfe0b437b"
            + "513908c6f6d0bd0b57a74edaba0b087f02410085ed81eab13c0a7ecf5fc7"
            + "65feacc51efd0f61be09d4151a68aee9edfc06ced06fbcf7ae1916587034"
            + "c927bdbb6f8be46ff7ad77865d70bc43c91b47bb8fa11d024100bfe28594"
            + "7465f692b4b60de0199fad1df1350169ed1cb59efa8cf148ee5899602c9a"
            + "a3bbe5e66f39b7c12da84ddc496f3f2f12bcbefcbe84d05100b61c335fcd"
            + "0240403c12a1c4e1536a877631b36a075bad052b8f94580b50617fe656a8"
            + "7b45d2ada4358483fea964b25500ab2579395bafe79fd315af79fe7706c9" + "1378aab9b2be";

    String encodedPublicKey = "30819f300d06092a864886f70d010101050003818d0030818902818100cc"
            + "65b29afd51609fb23b4968518b54fe26f41519dfad631e1a5e240bbd57c1"
            + "33bcbf98572f533263294a31ba77b1f56abeeff2ce5e02f0d1c07d23464a"
            + "096e06ea8d643f7205b7002f9a6ba370493b27217cd0e5e0577cf305557c"
            + "dbe7c6602badba2ae297493e75f165d2d2340fad59b7ee0d7c05b231379a" + "ad7854c873f7030203010001";

    PrivateKey privateKey = decodePrivateKey(encodedPrivateKey);
    PublicKey publicKey = decodePublicKey(encodedPublicKey);

    X500PrincipalBuilder subjectBuilder = new X500PrincipalBuilder();

    String email = "TEST@EXAMPLE.COM";

    subjectBuilder.setCommonName("Valid certificate uppercase email");
    subjectBuilder.setEmail(email);
    subjectBuilder.setCountryCode("NL");
    subjectBuilder.setLocality("Amsterdam");
    subjectBuilder.setState("NH");

    AltNamesBuilder altNamesBuider = new AltNamesBuilder();
    altNamesBuider.setRFC822Names(email);

    X500Principal subject = subjectBuilder.buildPrincipal();
    GeneralNames altNames = altNamesBuider.buildAltNames();

    Set<KeyUsageType> keyUsage = new TreeSet<KeyUsageType>();

    keyUsage.add(KeyUsageType.DIGITALSIGNATURE);
    keyUsage.add(KeyUsageType.KEYENCIPHERMENT);
    keyUsage.add(KeyUsageType.NONREPUDIATION);

    Set<ExtendedKeyUsageType> extendedKeyUsage = new TreeSet<ExtendedKeyUsageType>();

    extendedKeyUsage.add(ExtendedKeyUsageType.CLIENTAUTH);
    extendedKeyUsage.add(ExtendedKeyUsageType.EMAILPROTECTION);

    BigInteger serialNumber = new BigInteger("115fcde9dc082e7e9c8eef4cc69b94c", 16);

    Date now = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.UK)
            .parse("21-Nov-2007 10:39:35");

    certificateBuilder.setSubject(subject);
    certificateBuilder.setAltNames(altNames, true);
    certificateBuilder.setKeyUsage(keyUsage, true);
    certificateBuilder.setExtendedKeyUsage(extendedKeyUsage, false);
    certificateBuilder.setNotBefore(DateUtils.addDays(now, -20));
    certificateBuilder.setNotAfter(DateUtils.addYears(now, 20));
    certificateBuilder.setPublicKey(publicKey);
    certificateBuilder.setSerialNumber(serialNumber);
    certificateBuilder.setSignatureAlgorithm("SHA1WithRSAEncryption");
    certificateBuilder.addSubjectKeyIdentifier(true);

    X509Certificate certificate = certificateBuilder.generateCertificate(caPrivateKey, caCertificate);

    assertNotNull(certificate);

    certificates.add(certificate);

    Certificate[] chain = new Certificate[] { certificate, caCertificate, rootCertificate };

    keyStore.setKeyEntry("UppercaseEmail", privateKey, null, chain);
}