Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/MariaDB/plugin/file_key_management/   (MariaDB Server Version 8.1-8.4©)  Datei vom 1.9.2026 mit Größe 1 kB image not shown  

Quelle  parser.h   Sprache: C

 

/* Copyright (C) 2014 eperi GmbH.

 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; version 2 of the License.

 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.

 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1335  USA */


/******************************************************************//**
@file Parser.h
A structure and class to keep keys for encryption/decryption.

Created 09/15/2014
***********************************************************************/

#include <my_crypt.h>
#include <ctype.h>
#include <map>
#include <stdlib.h> /* size_t */

struct keyentry {
  unsigned int id;
  unsigned char key[MY_AES_MAX_KEY_LENGTH];
  unsigned int length;
};

class Parser
{
  const char *filename;
  const char *filekey;
  const enum my_digest digest;
  const uint use_pbkdf2;
  unsigned int line_number;

  unsigned int from_hex(char c)
  { return c <= '9' ? c - '0' : tolower(c) - 'a' + 10; }

  bool read_filekey(const char *filekey, char *secret);
  bool parse_file(std::map<unsigned int ,keyentry> *keys, const char *secret);
  void report_error(const char *reason, size_t position);
  int parse_line(char **line_ptr, keyentry *key);
  char* read_and_decrypt_file(const char *secret);

public:
  Parser(const char* fn, const char *fk, enum my_digest digest,
         uint use_pbkdf2) :
  filename(fn), filekey(fk), digest(digest), use_pbkdf2(use_pbkdf2),
  line_number(0) { }
  bool parse(std::map<unsigned int ,keyentry> *keys);
};

Messung V0.5 in Prozent
C=95 H=96 G=95

¤ Dauer der Verarbeitung: 0.10 Sekunden  (vorverarbeitet am  2026-10-08) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.