## Class sha1

hamigaki::checksum::sha1 —

RFC 3174で規定されるSHA-1ハッシュアルゴリズムに従い、チェックサムを計算する。

## Synopsis

    class sha1 {
    public:
      // types
      typedef boost::array<boost::uint8_t,20> value_type;

      // construct/copy/destruct
      sha1();

      // modifiers
      void reset();
      void process_bit(bool);
      void process_bits(unsigned char, std::size_t);
      void process_byte(unsigned char);
      void process_block(const void*, const void*);
      void process_block(const void*, std::size_t);
      void operator()(unsigned char);

      // queries
      value_type checksum() const;
      value_type operator()() const;
    };

## Description

### `sha1` construct/copy/destruct

1.     sha1();

### `sha1` modifiers

1.     void reset();

   Effects: | SHA-1コンテキストを初期状態に戻す。

2.     void process_bit(bool bit);

   Effects: | `bit`で示される1ビットでSHA-1コンテキストを更新する。

3.     void process_bits(unsigned char bits, std::size_t bit_count);

   Effects: | 符号なし整数`bits`の下位`bit_count`ビットを上位ビットから順に使用してSHA-1コンテキストを更新する。

4.     void process_byte(unsigned char byte);

   Effects: | 符号なし整数`byte`を上位ビットから順に使用してSHA-1コンテキストを更新する。

5.     void process_block(const void* bytes_begin, const void* bytes_end);

   Effects: | `[bytes_begin, bytes_end)`の範囲を使用してSHA-1コンテキストを更新する。

6.     void process_block(const void* buffer, std::size_t byte_count);

   Effects: | `[buffer, static_cast<const char*>(buffer)+byte_count)`の範囲を使用してSHA-1コンテキストを更新する。

7.     void operator()(unsigned char byte);

   Effects: |
       process_byte(byte);

### `sha1` queries

1.     value_type checksum() const;

   Returns: | SHA-1チェックサム

2.     value_type operator()() const;

   Effects: |
       return checksum();

| 製作著作 © 2006, 2007 Takeshi Mouri