Hi Sherman and all,

Thank you for all comments about this proposal!

Thank Tomoyuki and Stephen for sharing your needs.

Thank Bernd for sharing your information. However, I am
afraid that AE1 and AE2 may have a risk of patent issue,
while "Traditional PKWare encryption" is explicitly free
from the risk according to the PKWare documents.
Therefore, I think this proposed implementation to support
legacy zip specification is meaningful as Tomoyuki said.

We got some positive opinions / needs. I am glad if you
consider the proposal acceptable for JDK.
If this proposed implementation is acceptable, I and
Yasumasa will improve it by corresponding to comments
which given by Sherman and Stephen.

Thanks!
Yuji

2016-03-29 6:41 GMT+09:00 Xueming Shen <xueming.s...@oracle.com>:
> Yasumasa
>
> It's a tricky call. To be honest, as I said at the very beginning, I'm not
> sure whether
> or not it's a good idea and worth the efffort to push this into the j.u.zip
> package to
> support the "traditional PKWare encryption", which is known to be "seriously
> flawed,
> and in particular is vulnerable to known-plaintext attacks" (from wiki),
> while I fully
> understood it is not a concern in your "problem-free" use scenario. Just
> wonder
> if there is anyone else on the list that has/had the need for such
> encryption feature
> in the past. It would be preferred to have more input (agree, disagree) to
> make the
> final decision.
>
> Here are some comments regarding the proposed implementation,
>
> (1) The changes in native code are probably no longer needed. The native
> path is
>      left there for vm directly access.
> (2) I'm concerned about the footprint increase for the ZipEntry class (the
> proposed
>      change is adding 3 more fields into the entry class). Given this is
> something rarely
>      needed/used, and we might have hundreds and thousands of zip/jar
> entries during
>      startup/runtime, it might be desired to avoid adding these fields into
> ZipEntry class.
>      A possible alternative to have a dedicated entry class extended from
> the ZipEntry
>      to hold those extra fields and methods, EncryptionZipEntry for example.
> So the
>      proposed encryption support code will not have any impact to the
> existing use of
>      ZipInput/OutputStream/File.
> (3) I'm also not comfortable to add the "encryption engine" logic into the
> in/deflater
>      stream classes, while it might be convenient to do so from
> implementation point
>      of view. Given the encryption is something between the raw bites in the
> zip file
>      and the in/deflating layer, it might need an extra layer there, though
> I'm not sure
>      if it's easy to do so.
>
> The webrev below is what I think might be better for the ZipFile and
> ZipOutputStream
> to have an extra layer in between to handle the encryption. Not try to test
> if it really
> works, just throw in the idea for discussion.
>
> http://cr.openjdk.java.net/~sherman/zencrypt/webrev/
>
> No, I did not try the ZIS, the "pushback" stream there might be a little
> tricky:-)
>
> -Sherman
>
>
> On 03/28/2016 02:34 AM, Yasumasa Suenaga wrote:
>>
>> PING: Could you review it?
>> We want to move forward this enhancement.
>>
>> Thanks,
>>
>> Yasumasa
>> 2016/03/19 22:01 "Yasumasa Suenaga"<yasue...@gmail.com>:
>>
>>> Hi Alan,
>>>
>>>> I think the main issue here is to decide whether the API
>>>> should be extended for encryption or not.
>>>
>>> We've discussed on the premise that we add the API for supporting ZIP
>>> encryption.
>>> In this context, Sherman tried to implement AES encryption extending
>>> current API. [1]
>>>
>>> IMHO, ZIP encryption should be implemented as extention of current ZIP
>>> API
>>> because encryption/decryption will process for each ZIP entries.
>>>
>>> According to Developers' Guide, guideline for adding new API is TBD. [2]
>>> What should I do next?
>>>
>>>
>>> Thanks,
>>>
>>> Yasumsa
>>>
>>>
>>> [1]
>>>
>>> http://mail.openjdk.java.net/pipermail/core-libs-dev/2016-January/037903.html
>>> [2] http://openjdk.java.net/guide/changePlanning.html#api
>>>
>>>
>>> On 2016/03/19 0:25, Alan Bateman wrote:
>>>>
>>>> On 18/03/2016 15:02, Yasumasa Suenaga wrote:
>>>>>
>>>>> Hi all,
>>>>>
>>>>> We (including me and Yuji Kubota (ykubota: OpenJDK jdk9 Author))
>>>
>>> discussed
>>>>>
>>>>> about this issue from Nov. 2015. [1]
>>>>> We heard several comments and we applied them to our patch.
>>>>>
>>>>> I have not heard new comment for our latest patch.
>>>>> So I send review request for it. Could you review it?
>>>>>
>>>>>     webrev:
>>>>>       http://cr.openjdk.java.net/~ysuenaga/JDK-4347142/webrev.04/
>>>>>
>>>>>     Usage of new API:
>>>>>
>>> http://cr.openjdk.java.net/~ysuenaga/JDK-4347142/webrev.04/Test.java
>>>>
>>>> Yasumasa - I think the main issue here is to decide whether the API
>>>> should be extended for encryption or not. If exposing it in the API make
>>>> sense then I assume that alternative names to java.util.zip.ZipCryption
>>>> needs to be explored.
>>>>
>>>> -Alan.
>>>>
>

Reply via email to