private void privateKeyUsageTestBoth(final long startOffset, final long length) throws Exception {
X509Certificate cert = privateKeyUsageGetCertificate(true, startOffset, true, length);
assertNotNull("Has the extension", cert.getExtensionValue("2.5.29.16"));
assertTrue("Extension is non-critical", cert.getNonCriticalExtensionOIDs().contains("2.5.29.16"));
PrivateKeyUsagePeriod ext = PrivateKeyUsagePeriod.getInstance(X509ExtensionUtil.fromExtensionValue(cert.getExtensionValue("2.5.29.16")));
assertNotNull("Has notBefore", ext.getNotBefore());
assertNotNull("Has notAfter", ext.getNotAfter());
assertEquals("notBefore " + startOffset + " seconds after ca cert", cert.getNotBefore().getTime() + startOffset * 1000, ext.getNotBefore().getDate().getTime());
assertEquals("notAfter " + length + " seconds after notBefore", ext.getNotBefore().getDate().getTime() + length * 1000, ext.getNotAfter().getDate().getTime());
}