summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib/sha1.cc
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2020-02-18 12:48:38 +0100
committerJulian Andres Klode <julian.klode@canonical.com>2020-02-18 12:48:38 +0100
commite8016805b87bead8eb3dff0d0559c5d9590b721b (patch)
tree2b56db6a3e0bcad1389f2ab8663a09d1dc2c0b94 /apt-pkg/contrib/sha1.cc
parent4cf64a718f5630f8fcee8989f5ab1b88bb1932a7 (diff)
Remove code tagged APT_PKG_590, add some missing includes
Remove all code scheduled to be removed after 5.90, and fix files to include files they previously got from hashes.h including more headers.
Diffstat (limited to 'apt-pkg/contrib/sha1.cc')
-rw-r--r--apt-pkg/contrib/sha1.cc273
1 files changed, 0 insertions, 273 deletions
diff --git a/apt-pkg/contrib/sha1.cc b/apt-pkg/contrib/sha1.cc
deleted file mode 100644
index bf0b9d634..000000000
--- a/apt-pkg/contrib/sha1.cc
+++ /dev/null
@@ -1,273 +0,0 @@
-// -*- mode: cpp; mode: fold -*-
-// Description /*{{{*/
-/* ######################################################################
-
- SHA1 - SHA-1 Secure Hash Algorithm.
-
- This file is a Public Domain wrapper for the Public Domain SHA1
- calculation code that is at it's end.
-
- The algorithm was originally implemented by
- Steve Reid <sreid@sea-to-sky.net> and later modified by
- James H. Brown <jbrown@burgoyne.com>.
-
- Modifications for APT were done by Alfredo K. Kojima and Jason
- Gunthorpe.
-
- Still in the public domain.
-
- Test Vectors (from FIPS PUB 180-1)
- "abc"
- A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
- "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
- 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
- A million repetitions of "a"
- 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-
- #####################################################################
- */
- /*}}} */
-// Include Files /*{{{*/
-#include <config.h>
-
-#include <apt-pkg/sha1.h>
-
-#include <stdint.h>
-#include <string.h>
- /*}}}*/
-
-// SHA1Transform - Alters an existing SHA-1 hash /*{{{*/
-// ---------------------------------------------------------------------
-/* The core of the SHA-1 algorithm. This alters an existing SHA-1 hash to
- reflect the addition of 16 longwords of new data. Other routines convert
- incoming stream data into 16 long word chunks for this routine */
-
-#define rol(value,bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-
-/* blk0() and blk() perform the initial expand. */
-/* I got the idea of expanding during the round function from SSLeay */
-#ifndef WORDS_BIGENDIAN
-#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
- |(rol(block->l[i],8)&0x00FF00FF))
-#else
-#define blk0(i) block->l[i]
-#endif
-#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
- ^block->l[(i+2)&15]^block->l[i&15],1))
-
-/* (R0+R1),R2,R3,R4 are the different operations used in SHA1 */
-#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-
-static void SHA1Transform(uint32_t state[5],uint8_t const buffer[64])
-{
- uint32_t a,b,c,d,e;
- typedef union
- {
- uint8_t c[64];
- uint32_t l[16];
- }
- CHAR64LONG16;
- CHAR64LONG16 workspace, *block;
-
- block = &workspace;
- memcpy(block,buffer,sizeof(workspace));
-
- /* Copy context->state[] to working vars */
- a = state[0];
- b = state[1];
- c = state[2];
- d = state[3];
- e = state[4];
-
- /* 4 rounds of 20 operations each. Loop unrolled. */
- R0(a,b,c,d,e,0);
- R0(e,a,b,c,d,1);
- R0(d,e,a,b,c,2);
- R0(c,d,e,a,b,3);
- R0(b,c,d,e,a,4);
- R0(a,b,c,d,e,5);
- R0(e,a,b,c,d,6);
- R0(d,e,a,b,c,7);
- R0(c,d,e,a,b,8);
- R0(b,c,d,e,a,9);
- R0(a,b,c,d,e,10);
- R0(e,a,b,c,d,11);
- R0(d,e,a,b,c,12);
- R0(c,d,e,a,b,13);
- R0(b,c,d,e,a,14);
- R0(a,b,c,d,e,15);
- R1(e,a,b,c,d,16);
- R1(d,e,a,b,c,17);
- R1(c,d,e,a,b,18);
- R1(b,c,d,e,a,19);
- R2(a,b,c,d,e,20);
- R2(e,a,b,c,d,21);
- R2(d,e,a,b,c,22);
- R2(c,d,e,a,b,23);
- R2(b,c,d,e,a,24);
- R2(a,b,c,d,e,25);
- R2(e,a,b,c,d,26);
- R2(d,e,a,b,c,27);
- R2(c,d,e,a,b,28);
- R2(b,c,d,e,a,29);
- R2(a,b,c,d,e,30);
- R2(e,a,b,c,d,31);
- R2(d,e,a,b,c,32);
- R2(c,d,e,a,b,33);
- R2(b,c,d,e,a,34);
- R2(a,b,c,d,e,35);
- R2(e,a,b,c,d,36);
- R2(d,e,a,b,c,37);
- R2(c,d,e,a,b,38);
- R2(b,c,d,e,a,39);
- R3(a,b,c,d,e,40);
- R3(e,a,b,c,d,41);
- R3(d,e,a,b,c,42);
- R3(c,d,e,a,b,43);
- R3(b,c,d,e,a,44);
- R3(a,b,c,d,e,45);
- R3(e,a,b,c,d,46);
- R3(d,e,a,b,c,47);
- R3(c,d,e,a,b,48);
- R3(b,c,d,e,a,49);
- R3(a,b,c,d,e,50);
- R3(e,a,b,c,d,51);
- R3(d,e,a,b,c,52);
- R3(c,d,e,a,b,53);
- R3(b,c,d,e,a,54);
- R3(a,b,c,d,e,55);
- R3(e,a,b,c,d,56);
- R3(d,e,a,b,c,57);
- R3(c,d,e,a,b,58);
- R3(b,c,d,e,a,59);
- R4(a,b,c,d,e,60);
- R4(e,a,b,c,d,61);
- R4(d,e,a,b,c,62);
- R4(c,d,e,a,b,63);
- R4(b,c,d,e,a,64);
- R4(a,b,c,d,e,65);
- R4(e,a,b,c,d,66);
- R4(d,e,a,b,c,67);
- R4(c,d,e,a,b,68);
- R4(b,c,d,e,a,69);
- R4(a,b,c,d,e,70);
- R4(e,a,b,c,d,71);
- R4(d,e,a,b,c,72);
- R4(c,d,e,a,b,73);
- R4(b,c,d,e,a,74);
- R4(a,b,c,d,e,75);
- R4(e,a,b,c,d,76);
- R4(d,e,a,b,c,77);
- R4(c,d,e,a,b,78);
- R4(b,c,d,e,a,79);
-
- /* Add the working vars back into context.state[] */
- state[0] += a;
- state[1] += b;
- state[2] += c;
- state[3] += d;
- state[4] += e;
-}
- /*}}}*/
-
-// SHA1Summation::SHA1Summation - Constructor /*{{{*/
-// ---------------------------------------------------------------------
-/* */
-SHA1Summation::SHA1Summation()
-{
- uint32_t *state = (uint32_t *)State;
- uint32_t *count = (uint32_t *)Count;
-
- /* SHA1 initialization constants */
- state[0] = 0x67452301;
- state[1] = 0xEFCDAB89;
- state[2] = 0x98BADCFE;
- state[3] = 0x10325476;
- state[4] = 0xC3D2E1F0;
- count[0] = 0;
- count[1] = 0;
- Done = false;
-}
- /*}}}*/
-// SHA1Summation::Result - Return checksum value /*{{{*/
-// ---------------------------------------------------------------------
-/* Add() may not be called after this */
-SHA1SumValue SHA1Summation::Result()
-{
- uint32_t *state = (uint32_t *)State;
- uint32_t *count = (uint32_t *)Count;
-
- // Apply the padding
- if (Done == false)
- {
- unsigned char finalcount[8];
-
- for (unsigned i = 0; i < 8; i++)
- {
- // Endian independent
- finalcount[i] = (unsigned char) ((count[(i >= 4 ? 0 : 1)]
- >> ((3 - (i & 3)) * 8)) & 255);
- }
-
- Add((unsigned char *) "\200",1);
- while ((count[0] & 504) != 448)
- Add((unsigned char *) "\0",1);
-
- Add(finalcount,8); /* Should cause a SHA1Transform() */
-
- }
-
- Done = true;
-
- // Transfer over the result
- SHA1SumValue Value;
- unsigned char res[20];
- for (unsigned i = 0; i < 20; i++)
- {
- res[i] = (unsigned char)
- ((state[i >> 2] >> ((3 - (i & 3)) * 8)) & 255);
- }
- Value.Set(res);
- return Value;
-}
- /*}}}*/
-// SHA1Summation::Add - Adds content of buffer into the checksum /*{{{*/
-// ---------------------------------------------------------------------
-/* May not be called after Result() is called */
-bool SHA1Summation::Add(const unsigned char *data,unsigned long long len)
-{
- if (Done)
- return false;
- if (len == 0)
- return true;
-
- uint32_t *state = (uint32_t *)State;
- uint32_t *count = (uint32_t *)Count;
- uint8_t *buffer = (uint8_t *)Buffer;
- uint32_t i,j;
-
- j = (count[0] >> 3) & 63;
- if ((count[0] += len << 3) < (len << 3))
- count[1]++;
- count[1] += (len >> 29);
- if ((j + len) > 63)
- {
- memcpy(&buffer[j],data,(i = 64 - j));
- SHA1Transform(state,buffer);
- for (; i + 63 < len; i += 64)
- {
- SHA1Transform(state,&data[i]);
- }
- j = 0;
- }
- else
- i = 0;
- memcpy(&buffer[j],&data[i],len - i);
-
- return true;
-}
- /*}}}*/