====================================================================
DoD 5220.22-M算法:
char dod [7];
typedef struct
{
int length;
char* s;
} dwipe_pattern_t
}
覆盖填充七次,定义dod元素值
dwipe_pattern_t patterns [] =
{
{ 1, &dod[0] }, /* Pass 1: A random character. */
{ 1, &dod[1] }, /* Pass 2: The bitwise complement of pass 1. */
{ -1, "" }, /* Pass 3: A random stream. */
{ 1, &dod[3] }, /* Pass 4: A random character. */
{ 1, &dod[4] }, /* Pass 5: A random character. */
{ 1, &dod[5] }, /* Pass 6: The bitwise complement of pass 5. */
{ -1, "" }, /* Pass 7: A random stream. */
{ 0, NULL }
};
随机读取元素存放入dod
r = read( c->entropy_fd, &dod, sizeof( dod ) );
把dod第1个元素反补后放入dod[1]
dod[1] = ~ dod[0];
把dod第4个元素反补后放入dod[5]
dod[5] = ~ dod[4];