Referencia del Archivo sha256.cpp

#include "sha256.hpp"
#include <stdio.h>
#include <signal.h>
#include <cstring>
#include <string>
#include <sstream>
#include <iomanip>
#include <iostream>

Dependencia gráfica adjunta para sha256.cpp:

Ir al código fuente de este archivo.

Namespaces

namespace  Mt77

Definiciones

#define Ch(x, y, z)   (z ^ (x & (y ^ z)))
#define Maj(x, y, z)   (((x | y) & z) | (x & y))
#define S(x, n)   RORc((x),(n))
#define R(x, n)   (((x)&0xFFFFFFFFUL)>>(n))
#define Sigma0(x)   (S(x, 2) ^ S(x, 13) ^ S(x, 22))
#define Sigma1(x)   (S(x, 6) ^ S(x, 11) ^ S(x, 25))
#define Gamma0(x)   (S(x, 7) ^ S(x, 18) ^ R(x, 3))
#define Gamma1(x)   (S(x, 17) ^ S(x, 19) ^ R(x, 10))
#define RND(a, b, c, d, e, f, g, h, i, ki)

Funciones

void crypt_argchk (char *v, char *s, int d)
int sha256_init (hash_state *md)
int sha256_done (hash_state *md, unsigned char *out)
string hexaDeHash (unsigned char *hash, int l)
std::string sha256archivo (std::string narch)

Variables

struct ltc_hash_descriptor sha256_desc


Descripción detallada

Calcula condensado sha256

Copiado de sha256.c y encabezados de LibTomCrypt

Definición en el archivo sha256.cpp.


Documentación de las definiciones

#define Ch ( x,
y,
 )     (z ^ (x & (y ^ z)))

Definición en la línea 78 del archivo sha256.cpp.

#define Gamma0 (  )     (S(x, 7) ^ S(x, 18) ^ R(x, 3))

Definición en la línea 84 del archivo sha256.cpp.

#define Gamma1 (  )     (S(x, 17) ^ S(x, 19) ^ R(x, 10))

Definición en la línea 85 del archivo sha256.cpp.

#define Maj ( x,
y,
 )     (((x | y) & z) | (x & y))

Definición en la línea 79 del archivo sha256.cpp.

#define R ( x,
 )     (((x)&0xFFFFFFFFUL)>>(n))

Definición en la línea 81 del archivo sha256.cpp.

#define RND ( a,
b,
c,
d,
e,
f,
g,
h,
i,
ki   ) 

Valor:

t0 = h + Sigma1(e) + Ch(e, f, g) + ki + W[i];   \
     t1 = Sigma0(a) + Maj(a, b, c);                  \
     d += t0;                                        \
     h  = t0 + t1;

#define S ( x,
 )     RORc((x),(n))

Definición en la línea 80 del archivo sha256.cpp.

#define Sigma0 (  )     (S(x, 2) ^ S(x, 13) ^ S(x, 22))

Definición en la línea 82 del archivo sha256.cpp.

#define Sigma1 (  )     (S(x, 6) ^ S(x, 11) ^ S(x, 25))

Definición en la línea 83 del archivo sha256.cpp.


Documentación de las funciones

void crypt_argchk ( char *  v,
char *  s,
int  d 
)

Definición en la línea 33 del archivo sha256.cpp.

string hexaDeHash ( unsigned char *  hash,
int  l 
)

Definición en la línea 305 del archivo sha256.cpp.

Referenciado por sha256archivo().

int sha256_done ( hash_state md,
unsigned char *  hash 
)

Termina el cálculo para retornar el condensado final.

Parámetros:
md Estado del condensado
hash [out] Destino del condensado (32 bytes)
Devuelve:
CRYPT_OK si tiene éxito

Definición en la línea 254 del archivo sha256.cpp.

Hace referencia a CRYPT_INVALID_ARG, CRYPT_OK, LTC_ARGCHK, STORE32H, y STORE64H.

Referenciado por sha256archivo().

int sha256_init ( hash_state md  ) 

Inicializa el estado del condensado

Parámetros:
md Estado del condensado que usted desea inicializar
Devuelve:
CRYPT_OK si tiene éxito

Definición en la línea 235 del archivo sha256.cpp.

Hace referencia a CRYPT_OK, sha256_state::curlen, sha256_state::length, LTC_ARGCHK, Hash_state::sha256, y sha256_state::state.

Referenciado por sha256archivo().

std::string sha256archivo ( std::string  narch  ) 

Calcula sha256 al archivo dado

Parámetros:
narch nombre de archivo (debe existir)
Devuelve:
Cadena de 64 caracteres con los 32 números del hash sha256 del archivo cada uno en hexadecimal

Definición en la línea 329 del archivo sha256.cpp.

Hace referencia a hexaDeHash(), sha256_done(), sha256_init(), y sha256_process().

Referenciado por indexa(), y main().

Gráfico de llamadas para esta función:


Documentación de las variables

struct ltc_hash_descriptor sha256_desc

Valor inicial:

        {
                "sha256",
                0,
                32,
                64,

                
                { 2, 16, 840, 1, 101, 3, 4, 2, 1,  },
                9,

                &sha256_init,
                &sha256_process,
                &sha256_done,
                NULL,
                NULL
        }

Definición en la línea 40 del archivo sha256.cpp.


Generado el Wed Jan 6 06:59:43 2010 para Mt77 por  doxygen 1.5.4