summaryrefslogtreecommitdiffabout
path: root/pwmanager/pwmanager/binentrygen.h
blob: 49288aa6230fa1baf9becc395913c0be68df849d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/***************************************************************************
 *                                                                         *
 *   copyright (C) 2004 by Michael Buesch                                  *
 *   email: mbuesch@freenet.de                                             *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License version 2        *
 *   as published by the Free Software Foundation.                         *
 *                                                                         *
 ***************************************************************************/

/***************************************************************************
 * copyright (C) 2004 by Ulf Schenk
 * This file is originaly based on version 1.0.1 of pwmanager
 * and was modified to run on embedded devices that run microkde
 *
 * $Id$
 **************************************************************************/  

#ifndef __BINENTRYGEN_H
#define __BINENTRYGEN_H


#include <qcstring.h>

#include "pwmdoc.h"

/** Binary entry generator.
  * This generator generates a normal struct PwMDataItem
  * from binary data (using base64 encoding).
  * This mechanism is used to support the binary interface functions
  * of the KWallet emulation, for example.
  *
  * The format of the encoded binary data as a PwMDataItem is as follows:
  *
  * PwMDataItem::desc    contains the normal description string for
  *                      this entry. Nothing surprising.
  * PwMDataItem::name    contains the "DataType" number in ascii format.
  * PwMDataItem::pw      contains the base64 encoded data stream.
  * PwMDataItem::binary  is always true for binary entries.
  * All other PwMDataItems are currently unused by BinEntryGen.
  */
class BinEntryGen
{
public:
	enum DataType
	{
		None = 0,
		KWalletMap,
		KWalletStream
	};

public:
	BinEntryGen() { }

	/** Encode the binary "data" and return it in "ret" */
	void encode(const QByteArray &data, PwMDataItem *ret, DataType type);
	/** Decode the "data" and return it as binary "ret" */
	void decode(const PwMDataItem &data, QByteArray *ret, DataType *type);

	/** Return the data type for this binary data item */
	DataType binType(const PwMDataItem &data);
};

#endif // __BINENTRYGEN_H