/** Tests {@link ContentInfo#getInstance(InputStream)} method. */ public void testInit() throws Asn1FormatException, IOException { // Make sure illegal arguments are handled correctly try { ContentInfo.getInstance(null); fail("null accepted as content info bytes"); } catch (IllegalArgumentException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } try { InputStream in = new ByteArrayInputStream(CONTENT_INFO); in.skip(1); ContentInfo.getInstance(in); fail("rubbish accepted as content info bytes"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } // Build content info from pre-defined bytes InputStream in = new ByteArrayInputStream(CONTENT_INFO); ContentInfo.getInstance(in); // Build content info using valid components DERTaggedObject content = getDerTagged(true, 0, SIGNED_DATA); in = getDerStream(CONTENT_TYPE, content); ContentInfo.getInstance(in); }
/** Tests {@link ContentInfo#getInstance(InputStream)} method with various content types. */ public void testInitContentType() throws IOException { DERTaggedObject content = getDerTagged(true, 0, SIGNED_DATA); // Make sure empty content type is NOT accepted try { InputStream in = getDerStream(null, content); ContentInfo.getInstance(in); fail("null accepted as content type"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } // Make sure invalid content type is NOT accepted try { InputStream in = getDerStream("1.2.840.113549.1.7.3", content); ContentInfo.getInstance(in); fail("1.2.840.113549.1.7.3 accepted as content type"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } }
/** Tests {@link ContentInfo#getInstance(InputStream)} method with various content values. */ public void testInitContent() throws IOException { // Make sure empty content value is NOT accepted try { InputStream in = getDerStream(CONTENT_TYPE, null); ContentInfo.getInstance(in); fail("null accepted as content"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } // Make sure invalid content value is NOT accepted try { // Using `contentInfo` instead of `signedData` DERTaggedObject content = getDerTagged(true, 0, CONTENT_INFO); InputStream in = getDerStream(CONTENT_TYPE, content); ContentInfo.getInstance(in); fail("rubbish accepted as content"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } // Make sure implicitly tagged content is NOT accepted try { DERTaggedObject content = getDerTagged(false, 0, SIGNED_DATA); InputStream in = getDerStream(CONTENT_TYPE, content); ContentInfo.getInstance(in); // TODO: re-enable check when we upgrade the BC libraries // http://www.bouncycastle.org/jira/browse/BJA-259 // fail("implicitly tagged content accepted"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } // Make sure content with invalid tag is NOT accepted try { DERTaggedObject content = getDerTagged(true, 1, SIGNED_DATA); InputStream in = getDerStream(CONTENT_TYPE, content); ContentInfo.getInstance(in); // TODO: re-enable check when we upgrade the BC libraries // http://www.bouncycastle.org/jira/browse/BJA-259 // fail("content tagged with [1] accepted"); } catch (Asn1FormatException e) { Log.debug("[DBG] (OK) " + e.getMessage()); } }