~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/algorithm/sha1.h

  • Committer: Daniel Nichter
  • Date: 2011-10-23 16:01:37 UTC
  • mto: This revision was merged to the branch mainline in revision 2448.
  • Revision ID: daniel@percona.com-20111023160137-7ac3blgz8z4tf8za
Add Administration Getting Started and Logging.  Capitalize SQL clause keywords.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright (C) 2010 nobody (this is public domain)
 
3
 */
 
4
 
 
5
/**
 
6
 * @file
 
7
 * @brief SHA1 Declarations
 
8
 */
 
9
 
 
10
#pragma once
 
11
 
 
12
#include <stdint.h>
 
13
#include <sys/types.h>
 
14
#include <string.h>
 
15
 
 
16
#include <drizzled/util/data_ref.h>
 
17
#include <drizzled/visibility.h>
 
18
 
 
19
namespace drizzled {
 
20
 
 
21
/**
 
22
 * @addtogroup sha1 SHA-1 in C
 
23
 * 
 
24
 * This file is based on public domain code.
 
25
 * Initial source code is in the public domain, 
 
26
 * so clarified by Steve Reid <steve@edmweb.com>
 
27
 *
 
28
 * @{
 
29
 */
 
30
 
 
31
#define SHA1_BLOCK_LENGTH               64
 
32
#define SHA1_DIGEST_LENGTH              20
 
33
#define SHA1_DIGEST_STRING_LENGTH       (SHA1_DIGEST_LENGTH * 2 + 1)
 
34
 
 
35
class SHA1_CTX
 
36
{
 
37
public:
 
38
    uint32_t state[5];
 
39
    uint64_t count;
 
40
    uint8_t buffer[SHA1_BLOCK_LENGTH];
 
41
 
 
42
    SHA1_CTX() :
 
43
        count(0)
 
44
    {
 
45
      memset(state, 0, 5);
 
46
      memset(buffer, 0, SHA1_BLOCK_LENGTH);
 
47
    }
 
48
};
 
49
 
 
50
DRIZZLED_API void SHA1Init(SHA1_CTX*);
 
51
DRIZZLED_API void SHA1Pad(SHA1_CTX*);
 
52
DRIZZLED_API void SHA1Transform(uint32_t [5], const uint8_t [SHA1_BLOCK_LENGTH]);
 
53
DRIZZLED_API void SHA1Update(SHA1_CTX*, const uint8_t*, size_t);
 
54
DRIZZLED_API void SHA1Final(uint8_t[SHA1_DIGEST_LENGTH], SHA1_CTX*);
 
55
 
 
56
void do_sha1(data_ref, uint8_t[SHA1_DIGEST_LENGTH]);
 
57
 
 
58
/** @} */
 
59
 
 
60
} /* namespace drizzled */