private int ProcessExtraFieldPkwareStrongEncryption(byte[] Buffer, int j)
{
// Value Size Description
// ----- ---- -----------
// 0x0017 2 bytes Tag for this "extra" block type
// TSize 2 bytes Size of data that follows
// Format 2 bytes Format definition for this record
// AlgID 2 bytes Encryption algorithm identifier
// Bitlen 2 bytes Bit length of encryption key
// Flags 2 bytes Processing flags
// CertData TSize-8 Certificate decryption extra field data
// (refer to the explanation for CertData
// in the section describing the
// Certificate Processing Method under
// the Strong Encryption Specification)
j += 2;
_UnsupportedAlgorithmId = (UInt16)(Buffer[j++] + Buffer[j++] * 256);
_Encryption_FromZipFile = _Encryption = EncryptionAlgorithm.Unsupported;
// DotNetZip doesn't support this algorithm, but we don't need to throw
// here. we might just be reading the archive, which is fine. We'll
// need to throw if Extract() is called.
return j;
}