@Override public byte[] getReadPassword(final String name, final boolean invalid) throws ZipKeyException { if (invalid) throw new ZipKeyException("Unknown password."); return "secret".getBytes(); }
@Override public AesKeyStrength getKeyStrength(final String name) throws ZipKeyException { final KeyProvider<AesPbeParameters> provider = manager.getKeyProvider(resourceUri(name)); try { return provider.getWriteKey().getKeyStrength(); } catch (UnknownKeyException ex) { throw new ZipKeyException(ex); } }
@Override public byte[] getReadPassword(String name, boolean invalid) throws ZipKeyException { if (invalid) throw new ZipKeyException(name + " (invalid password)"); return password.clone(); }
@Override public byte[] getReadPassword(final String name, final boolean invalid) throws ZipKeyException { final KeyProvider<AesPbeParameters> provider = manager.getKeyProvider(resourceUri(name)); try { return password(provider.getReadKey(invalid).getPassword(), name); } catch (UnknownKeyException ex) { throw new ZipKeyException(ex); } }
@Override public byte[] getWritePassword(final String name) throws ZipKeyException { final KeyProvider<AesPbeParameters> provider = manager.getKeyProvider(resourceUri(name)); try { return password(provider.getWriteKey().getPassword(), name); } catch (UnknownKeyException ex) { throw new ZipKeyException(ex); } }
@Override public void setKeyStrength( final String name, final AesKeyStrength keyStrength) throws ZipKeyException { final KeyProvider<AesPbeParameters> provider = manager.getKeyProvider(resourceUri(name)); final AesPbeParameters param; try { param = provider.getReadKey(false); } catch (UnknownKeyException ex) { throw new ZipKeyException(ex); } param.setKeyStrength(keyStrength); provider.setKey(param); } } // WinZipAes