> -----Ursprüngliche Nachricht----- > Von: Andreas Beeker <[email protected]>
> Gesendet: Montag, 2. März 2020 00:24 > An: POI Developers List <[email protected]> > Cc: Hölzl, Dominik <[email protected]> > Betreff: Re: HSMF enhancements > > Hello Dominik, > > I'm having a look at the patch. > > Where is the CRC32 code from? ... and please point me to the > documentation of the GUID logic. > > Thank you and best wishes, > Andi > > On 24.02.20 13:04, Hölzl, Dominik wrote: > > Hello! > > > > Can somebody please have a look > https://github.com/apache/poi/pull/167? > > > > Thank you and regards, > > Dominik Hölzl > > > > > Hello! The GUID-logic is exactly documented here: https://docs.microsoft.com/en-us/openspecs/exchange_server_protocols/ms-oxmsg/b046868c-9fbf-41ae-9ffb-8de2bd4eec82 (Chapter 2.2.3 Named Property Mapping Storage) As there is no explicit documentation on the CRC-32 parameters there (2.2.3.2.2.1 Stream ID Equation - the only hint is "X25" which seems to be a dead end), I grabbed this from here: https://github.com/yorkshiretwist/ReadAnOutlookMsg/blob/master/OutlookStorage.cs (Seems to be originated from https://github.com/jukka/jtnef/blob/master/src/net/freeutils/tnef/CompressedRTFInputStream.java) The only thing I needed from there were the CRC-32 parameters, which are poly=0x04C11DB7 (which is the "default" CRC-32 value), init=0x00000000, xor=0x00000000, revin=true, revout=true. This leads to the check value of 0x2DFD2D88 which can e.g. be tested here: http://www.zorc.breitbandkatze.de/crc.html Public CRC32 algorithm implementation is broadly available. https://en.wikipedia.org/wiki/Cyclic_redundancy_check Regards, Dominik
