8182362: Update CipherOutputStream Usage
authorapetcher
Tue, 02 Jan 2018 09:23:01 -0500
changeset 49781 21fa027e2e62
parent 49780 3b7859b3ef15
child 49782 7cbb8bd1fc29
8182362: Update CipherOutputStream Usage Summary: Clarify spec of CipherOutputStream in Javadoc comments Reviewed-by: ascarpino
src/java.base/share/classes/javax/crypto/CipherOutputStream.java
--- a/src/java.base/share/classes/javax/crypto/CipherOutputStream.java	Tue Dec 12 16:37:39 2017 -0800
+++ b/src/java.base/share/classes/javax/crypto/CipherOutputStream.java	Tue Jan 02 09:23:01 2018 -0500
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
  *
  * This code is free software; you can redistribute it and/or modify it
@@ -42,7 +42,15 @@
  * java.io.OutputStream and java.io.FilterOutputStream.  This class
  * has exactly those methods specified in its ancestor classes, and
  * overrides them all.  Moreover, this class catches all exceptions
- * that are not thrown by its ancestor classes.
+ * that are not thrown by its ancestor classes. In particular, this
+ * class catches BadPaddingException and other exceptions thrown by
+ * failed integrity checks during decryption. These exceptions are not
+ * re-thrown, so the client will not be informed that integrity checks
+ * failed. Because of this behavior, this class may not be suitable
+ * for use with decryption in an authenticated mode of operation (e.g. GCM)
+ * if the application requires explicit notification when authentication
+ * fails. Such an application can use the Cipher API directly as an
+ * alternative to using this class.
  *
  * <p> It is crucial for a programmer using this class not to use
  * methods that are not defined or overriden in this class (such as a