コード例 #1
0
ファイル: mainwindow.cpp プロジェクト: be1ay/MyHash_Stribog
void MyClass::GOST2012(){
emit set_max(0);
    QFile file(fname);
    emit sendStringFileName(fname);
    CTX = (GOST34112012Context*)(malloc(sizeof(GOST34112012Context)));
    if(sizeHash==64)
        GOST34112012Init(CTX, 512);
    if(sizeHash==32)
        GOST34112012Init(CTX, 256);

     if (file.open(QIODevice::ReadOnly) )
               {
                 while (!file.atEnd()) {
                 QByteArray line = file.read(4096);
                 GOST34112012Update(CTX, (unsigned char*)(line.data()), line.size());
               }
             }
             file.close();
             GOST34112012Final(CTX, &digest[0]);
     convert_to_hex(digest, hexdigest, sizeHash, 1);//eflag=1 (в Госте в таком виде хеш получается)// eflag=0 наоборот развернут
     QString rez = (char*)hexdigest;
    // QString rez = (char*)digest;
    //  rez   = rez.toLocal8Bit().toHex();
             GOST34112012Cleanup(CTX);

    emit sendString(rez);emit set_max(100);emit change_value(100);emit finished();emit sendStringDone("Complete");
}
コード例 #2
0
ファイル: gost12sum.c プロジェクト: MaXaMaR/engine-new
int finish_hash12(gost_hash_ctx * ctx, byte * hashval)
{
    GOST34112012Final(ctx, hashval);
    return 1;
}