Lines Matching refs:context

315 void ldns_sha256_init(ldns_sha256_CTX* context) {
316 if (context == (ldns_sha256_CTX*)0) {
319 MEMCPY_BCOPY(context->state, ldns_sha256_initial_hash_value, LDNS_SHA256_DIGEST_LENGTH);
320 MEMSET_BZERO(context->buffer, LDNS_SHA256_BLOCK_LENGTH);
321 context->bitcount = 0;
361 static void ldns_sha256_Transform(ldns_sha256_CTX* context,
367 W256 = (sha2_word32*)context->buffer;
370 a = context->state[0];
371 b = context->state[1];
372 c = context->state[2];
373 d = context->state[3];
374 e = context->state[4];
375 f = context->state[5];
376 g = context->state[6];
377 h = context->state[7];
405 context->state[0] += a;
406 context->state[1] += b;
407 context->state[2] += c;
408 context->state[3] += d;
409 context->state[4] += e;
410 context->state[5] += f;
411 context->state[6] += g;
412 context->state[7] += h;
420 static void ldns_sha256_Transform(ldns_sha256_CTX* context,
426 W256 = (sha2_word32*)context->buffer;
429 a = context->state[0];
430 b = context->state[1];
431 c = context->state[2];
432 d = context->state[3];
433 e = context->state[4];
434 f = context->state[5];
435 g = context->state[6];
436 h = context->state[7];
486 context->state[0] += a;
487 context->state[1] += b;
488 context->state[2] += c;
489 context->state[3] += d;
490 context->state[4] += e;
491 context->state[5] += f;
492 context->state[6] += g;
493 context->state[7] += h;
502 void ldns_sha256_update(ldns_sha256_CTX* context, const sha2_byte *data, size_t len) {
511 assert(context != (ldns_sha256_CTX*)0 && data != (sha2_byte*)0);
513 usedspace = (context->bitcount >> 3) % LDNS_SHA256_BLOCK_LENGTH;
520 MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace);
521 context->bitcount += freespace << 3;
524 ldns_sha256_Transform(context, (sha2_word32*)context->buffer);
527 MEMCPY_BCOPY(&context->buffer[usedspace], data, len);
528 context->bitcount += len << 3;
537 ldns_sha256_Transform(context, (sha2_word32*)data);
538 context->bitcount += LDNS_SHA256_BLOCK_LENGTH << 3;
544 MEMCPY_BCOPY(context->buffer, data, len);
545 context->bitcount += len << 3;
557 void ldns_sha256_final(sha2_byte digest[LDNS_SHA256_DIGEST_LENGTH], ldns_sha256_CTX* context) {
563 assert(context != (ldns_sha256_CTX*)0);
567 usedspace = (context->bitcount >> 3) % LDNS_SHA256_BLOCK_LENGTH;
570 REVERSE64(context->bitcount,context->bitcount);
574 context->buffer[usedspace++] = 0x80;
578 MEMSET_BZERO(&context->buffer[usedspace], ldns_sha256_SHORT_BLOCK_LENGTH - usedspace);
581 MEMSET_BZERO(&context->buffer[usedspace], LDNS_SHA256_BLOCK_LENGTH - usedspace);
584 ldns_sha256_Transform(context, (sha2_word32*)context->buffer);
587 MEMSET_BZERO(context->buffer, ldns_sha256_SHORT_BLOCK_LENGTH);
591 MEMSET_BZERO(context->buffer, ldns_sha256_SHORT_BLOCK_LENGTH);
594 *context->buffer = 0x80;
597 cast_var.theChars = context->buffer;
598 cast_var.theLongs[ldns_sha256_SHORT_BLOCK_LENGTH / 8] = context->bitcount;
601 ldns_sha256_Transform(context, (sha2_word32*)context->buffer);
608 REVERSE32(context->state[j],context->state[j]);
609 *d++ = context->state[j];
613 MEMCPY_BCOPY(d, context->state, LDNS_SHA256_DIGEST_LENGTH);
618 MEMSET_BZERO(context, sizeof(ldns_sha256_CTX));
634 void ldns_sha512_init(ldns_sha512_CTX* context) {
635 if (context == (ldns_sha512_CTX*)0) {
638 MEMCPY_BCOPY(context->state, sha512_initial_hash_value, LDNS_SHA512_DIGEST_LENGTH);
639 MEMSET_BZERO(context->buffer, LDNS_SHA512_BLOCK_LENGTH);
640 context->bitcount[0] = context->bitcount[1] = 0;
679 static void ldns_sha512_Transform(ldns_sha512_CTX* context,
682 sha2_word64 T1, *W512 = (sha2_word64*)context->buffer;
686 a = context->state[0];
687 b = context->state[1];
688 c = context->state[2];
689 d = context->state[3];
690 e = context->state[4];
691 f = context->state[5];
692 g = context->state[6];
693 h = context->state[7];
720 context->state[0] += a;
721 context->state[1] += b;
722 context->state[2] += c;
723 context->state[3] += d;
724 context->state[4] += e;
725 context->state[5] += f;
726 context->state[6] += g;
727 context->state[7] += h;
735 static void ldns_sha512_Transform(ldns_sha512_CTX* context,
738 sha2_word64 T1, T2, *W512 = (sha2_word64*)context->buffer;
742 a = context->state[0];
743 b = context->state[1];
744 c = context->state[2];
745 d = context->state[3];
746 e = context->state[4];
747 f = context->state[5];
748 g = context->state[6];
749 h = context->state[7];
799 context->state[0] += a;
800 context->state[1] += b;
801 context->state[2] += c;
802 context->state[3] += d;
803 context->state[4] += e;
804 context->state[5] += f;
805 context->state[6] += g;
806 context->state[7] += h;
815 void ldns_sha512_update(ldns_sha512_CTX* context, const sha2_byte *data, size_t len) {
824 assert(context != (ldns_sha512_CTX*)0 && data != (sha2_byte*)0);
826 usedspace = (context->bitcount[0] >> 3) % LDNS_SHA512_BLOCK_LENGTH;
833 MEMCPY_BCOPY(&context->buffer[usedspace], data, freespace);
834 ADDINC128(context->bitcount, freespace << 3);
837 ldns_sha512_Transform(context, (sha2_word64*)context->buffer);
840 MEMCPY_BCOPY(&context->buffer[usedspace], data, len);
841 ADDINC128(context->bitcount, len << 3);
850 ldns_sha512_Transform(context, (sha2_word64*)data);
851 ADDINC128(context->bitcount, LDNS_SHA512_BLOCK_LENGTH << 3);
857 MEMCPY_BCOPY(context->buffer, data, len);
858 ADDINC128(context->bitcount, len << 3);
865 static void ldns_sha512_Last(ldns_sha512_CTX* context) {
869 usedspace = (context->bitcount[0] >> 3) % LDNS_SHA512_BLOCK_LENGTH;
872 REVERSE64(context->bitcount[0],context->bitcount[0]);
873 REVERSE64(context->bitcount[1],context->bitcount[1]);
877 context->buffer[usedspace++] = 0x80;
881 MEMSET_BZERO(&context->buffer[usedspace], ldns_sha512_SHORT_BLOCK_LENGTH - usedspace);
884 MEMSET_BZERO(&context->buffer[usedspace], LDNS_SHA512_BLOCK_LENGTH - usedspace);
887 ldns_sha512_Transform(context, (sha2_word64*)context->buffer);
890 MEMSET_BZERO(context->buffer, LDNS_SHA512_BLOCK_LENGTH - 2);
894 MEMSET_BZERO(context->buffer, ldns_sha512_SHORT_BLOCK_LENGTH);
897 *context->buffer = 0x80;
900 cast_var.theChars = context->buffer;
901 cast_var.theLongs[ldns_sha512_SHORT_BLOCK_LENGTH / 8] = context->bitcount[1];
902 cast_var.theLongs[ldns_sha512_SHORT_BLOCK_LENGTH / 8 + 1] = context->bitcount[0];
905 ldns_sha512_Transform(context, (sha2_word64*)context->buffer);
908 void ldns_sha512_final(sha2_byte digest[LDNS_SHA512_DIGEST_LENGTH], ldns_sha512_CTX* context) {
912 assert(context != (ldns_sha512_CTX*)0);
916 ldns_sha512_Last(context);
924 REVERSE64(context->state[j],context->state[j]);
925 *d++ = context->state[j];
929 MEMCPY_BCOPY(d, context->state, LDNS_SHA512_DIGEST_LENGTH);
934 MEMSET_BZERO(context, sizeof(ldns_sha512_CTX));
948 void ldns_sha384_init(ldns_sha384_CTX* context) {
949 if (context == (ldns_sha384_CTX*)0) {
952 MEMCPY_BCOPY(context->state, sha384_initial_hash_value, LDNS_SHA512_DIGEST_LENGTH);
953 MEMSET_BZERO(context->buffer, LDNS_SHA384_BLOCK_LENGTH);
954 context->bitcount[0] = context->bitcount[1] = 0;
957 void ldns_sha384_update(ldns_sha384_CTX* context, const sha2_byte* data, size_t len) {
958 ldns_sha512_update((ldns_sha512_CTX*)context, data, len);
961 void ldns_sha384_final(sha2_byte digest[LDNS_SHA384_DIGEST_LENGTH], ldns_sha384_CTX* context) {
965 assert(context != (ldns_sha384_CTX*)0);
969 ldns_sha512_Last((ldns_sha512_CTX*)context);
977 REVERSE64(context->state[j],context->state[j]);
978 *d++ = context->state[j];
982 MEMCPY_BCOPY(d, context->state, LDNS_SHA384_DIGEST_LENGTH);
987 MEMSET_BZERO(context, sizeof(ldns_sha384_CTX));