@Override public ISecurityHandler getSecurityHandler(COSEncryption encryption) throws COSSecurityException { COSName name = encryption.getFilter(); if (name == null) { throw new COSSecurityException("security handler not specified"); // $NON-NLS-1$ } if (name.equals(CN_Standard)) { int revision = encryption.getFieldInt(DK_R, 0); if (revision == 2) { return new StandardSecurityHandlerR2(); } else if (revision == 3) { return new StandardSecurityHandlerR3(); } else if (revision == 4) { return new StandardSecurityHandlerR4(); } else { return new StandardSecurityHandlerR2(); } } // maybe provide a registry some day throw new COSSecurityException( "no security handler '" //$NON-NLS-1$ + name.stringValue() + "'"); //$NON-NLS-1$ }
public int getLength() { COSEncryption encryption = getEncryption(); return encryption.getFieldInt(COSEncryption.DK_Length, DEFAULT_LENGTH); }