示例#1
0
文件: sha1.cpp 项目: bitkeeper/sedna
static void
sha1_pad(sha1_ctxt * ctxt)
{
        uint8_t          padlen;                 /* pad length in bytes */
        uint8_t          padstart;

        PUTPAD(0x80);

        padstart = COUNT % 64;
        padlen = 64 - padstart;
        if (padlen < 8)
        {
                memset(&ctxt->m.b8[padstart], 0, padlen);
                COUNT += padlen;
                COUNT %= 64;
                sha1_step(ctxt);
                padstart = COUNT % 64;  /* should be 0 */
                padlen = 64 - padstart; /* should be 64 */
        }
        memset(&ctxt->m.b8[padstart], 0, padlen - 8);
        COUNT += (padlen - 8);
        COUNT %= 64;
#ifdef BIG_ENDIAN_ORDER
        PUTPAD(ctxt->c.b8[0]);
        PUTPAD(ctxt->c.b8[1]);
        PUTPAD(ctxt->c.b8[2]);
        PUTPAD(ctxt->c.b8[3]);
        PUTPAD(ctxt->c.b8[4]);
        PUTPAD(ctxt->c.b8[5]);
        PUTPAD(ctxt->c.b8[6]);
        PUTPAD(ctxt->c.b8[7]);
#else
        PUTPAD(ctxt->c.b8[7]);
        PUTPAD(ctxt->c.b8[6]);
        PUTPAD(ctxt->c.b8[5]);
        PUTPAD(ctxt->c.b8[4]);
        PUTPAD(ctxt->c.b8[3]);
        PUTPAD(ctxt->c.b8[2]);
        PUTPAD(ctxt->c.b8[1]);
        PUTPAD(ctxt->c.b8[0]);
#endif
}
示例#2
0
void
sha1_pad(struct sha1_ctxt *ctxt)
{
	size_t padlen;		/*pad length in bytes*/
	size_t padstart;

	PUTPAD(0x80);

	padstart = COUNT % 64;
	padlen = 64 - padstart;
	if (padlen < 8) {
		memset(&ctxt->m.b8[padstart], 0, padlen);
		COUNT += padlen;
		COUNT %= 64;
		sha1_step(ctxt);
		padstart = COUNT % 64;	/* should be 0 */
		padlen = 64 - padstart;	/* should be 64 */
	}
	memset(&ctxt->m.b8[padstart], 0, padlen - 8);
	COUNT += (padlen - 8);
	COUNT %= 64;
#if WORDS_BIGENDIAN
	PUTPAD(ctxt->c.b8[0]); PUTPAD(ctxt->c.b8[1]);
	PUTPAD(ctxt->c.b8[2]); PUTPAD(ctxt->c.b8[3]);
	PUTPAD(ctxt->c.b8[4]); PUTPAD(ctxt->c.b8[5]);
	PUTPAD(ctxt->c.b8[6]); PUTPAD(ctxt->c.b8[7]);
#else
	PUTPAD(ctxt->c.b8[7]); PUTPAD(ctxt->c.b8[6]);
	PUTPAD(ctxt->c.b8[5]); PUTPAD(ctxt->c.b8[4]);
	PUTPAD(ctxt->c.b8[3]); PUTPAD(ctxt->c.b8[2]);
	PUTPAD(ctxt->c.b8[1]); PUTPAD(ctxt->c.b8[0]);
#endif
}
示例#3
0
void
sha1_pad(struct sha1_ctxt *ctxt)
{
	size_t padlen;		/*pad length in bytes*/
	size_t padstart;

	PUTPAD(0x80);

	padstart = COUNT % 64;
	padlen = 64 - padstart;
	if (padlen < 8) {
		bzero(&ctxt->m.b8[padstart], padlen);
		COUNT += (unsigned char)padlen;
		COUNT %= 64;
		sha1_step(ctxt);
		padstart = COUNT % 64;	/* should be 0 */
		padlen = 64 - padstart;	/* should be 64 */
	}
	bzero(&ctxt->m.b8[padstart], padlen - 8);
	COUNT += ((unsigned char)padlen - 8);
	COUNT %= 64;
#if BYTE_ORDER == BIG_ENDIAN
	PUTPAD(ctxt->c.b8[0]); PUTPAD(ctxt->c.b8[1]);
	PUTPAD(ctxt->c.b8[2]); PUTPAD(ctxt->c.b8[3]);
	PUTPAD(ctxt->c.b8[4]); PUTPAD(ctxt->c.b8[5]);
	PUTPAD(ctxt->c.b8[6]); PUTPAD(ctxt->c.b8[7]);
#else
	PUTPAD(ctxt->c.b8[7]); PUTPAD(ctxt->c.b8[6]);
	PUTPAD(ctxt->c.b8[5]); PUTPAD(ctxt->c.b8[4]);
	PUTPAD(ctxt->c.b8[3]); PUTPAD(ctxt->c.b8[2]);
	PUTPAD(ctxt->c.b8[1]); PUTPAD(ctxt->c.b8[0]);
#endif
}