Qt Cryptographic Architecture
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
include
QtCrypto
qca_tools.h
Go to the documentation of this file.
1
/*
2
* qca_tools.h - Qt Cryptographic Architecture
3
* Copyright (C) 2003-2007 Justin Karneges <justin@affinix.com>
4
* Copyright (C) 2004,2005 Brad Hards <bradh@frogmouth.net>
5
*
6
* This library is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU Lesser General Public
8
* License as published by the Free Software Foundation; either
9
* version 2.1 of the License, or (at your option) any later version.
10
*
11
* This library is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
* Lesser General Public License for more details.
15
*
16
* You should have received a copy of the GNU Lesser General Public
17
* License along with this library; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
19
* 02110-1301 USA
20
*
21
*/
22
36
#ifndef QCA_TOOLS_H
37
#define QCA_TOOLS_H
38
39
#include <QSharedData>
40
#include <QSharedDataPointer>
41
#include <QMetaType>
42
#include "
qca_export.h
"
43
44
class
QString;
45
class
QByteArray;
46
class
QTextStream;
47
55
QCA_EXPORT
void
*
qca_secure_alloc
(
int
bytes);
56
65
QCA_EXPORT
void
qca_secure_free
(
void
*p);
66
74
QCA_EXPORT
void
*
qca_secure_realloc
(
void
*p,
int
bytes);
75
76
namespace
QCA {
77
90
class
QCA_EXPORT
MemoryRegion
91
{
92
public
:
93
MemoryRegion
();
94
101
MemoryRegion
(
const
char
*str);
102
109
MemoryRegion
(
const
QByteArray &from);
110
116
MemoryRegion
(
const
MemoryRegion
&from);
117
~
MemoryRegion
();
118
124
MemoryRegion
& operator=(
const
MemoryRegion
&from);
125
131
MemoryRegion
& operator=(
const
QByteArray &from);
132
141
bool
isNull()
const
;
142
151
bool
isSecure()
const
;
152
161
QByteArray toByteArray()
const
;
162
166
bool
isEmpty()
const
;
167
171
int
size()
const
;
172
182
const
char
*data()
const
;
183
192
const
char
*constData()
const
;
193
204
const
char
& at(
int
index)
const
;
205
206
protected
:
218
MemoryRegion
(
bool
secure);
219
229
MemoryRegion
(
int
size,
bool
secure);
230
243
MemoryRegion
(
const
QByteArray &from,
bool
secure);
244
250
char
*data();
251
262
char
& at(
int
index);
263
269
bool
resize(
int
size);
270
280
void
set(
const
QByteArray &from,
bool
secure);
281
293
void
setSecure(
bool
secure);
294
295
private
:
296
bool
_secure;
297
class
Private;
298
QSharedDataPointer<Private> d;
299
};
300
316
class
QCA_EXPORT
SecureArray
:
public
MemoryRegion
317
{
318
public
:
322
SecureArray
();
323
330
explicit
SecureArray
(
int
size,
char
ch = 0);
331
339
SecureArray
(
const
char
*str);
340
350
SecureArray
(
const
QByteArray &a);
351
361
SecureArray
(
const
MemoryRegion
&a);
362
368
SecureArray
(
const
SecureArray
&from);
369
370
~
SecureArray
();
371
377
SecureArray
& operator=(
const
SecureArray
&from);
378
384
SecureArray
& operator=(
const
QByteArray &a);
385
389
void
clear();
390
396
char
& operator[](
int
index);
397
403
const
char
& operator[](
int
index)
const
;
404
412
char
*data();
413
421
const
char
*data()
const
;
422
430
const
char
*constData()
const
;
431
437
char
& at(
int
index);
438
444
const
char
& at(
int
index)
const
;
445
449
int
size()
const
;
450
460
bool
isEmpty()
const
;
461
470
bool
resize(
int
size);
471
486
void
fill(
char
fillChar,
int
fillToPosition = -1);
487
493
QByteArray toByteArray()
const
;
494
500
SecureArray
& append(
const
SecureArray
&a);
501
508
bool
operator==(
const
MemoryRegion
&other)
const
;
509
516
inline
bool
operator!=
(
const
MemoryRegion
&other)
const
517
{
518
return
!(*
this
== other);
519
}
520
526
SecureArray
& operator+=(
const
SecureArray
&a);
527
528
protected
:
535
void
set(
const
SecureArray
&from);
536
543
void
set(
const
QByteArray &from);
544
};
545
552
QCA_EXPORT
const
SecureArray
operator+
(
const
SecureArray &a,
const
SecureArray &b);
553
570
class
QCA_EXPORT
BigInteger
571
{
572
public
:
576
BigInteger
();
577
583
BigInteger
(
int
n);
584
594
BigInteger
(
const
char
*c);
595
601
BigInteger
(
const
QString &s);
602
608
BigInteger
(
const
QCA::SecureArray
&a);
609
615
BigInteger
(
const
BigInteger
&from);
616
617
~
BigInteger
();
618
630
BigInteger
& operator=(
const
BigInteger
&from);
631
643
BigInteger
& operator=(
const
QString &s);
644
657
BigInteger
& operator+=(
const
BigInteger
&b);
658
671
BigInteger
& operator-=(
const
BigInteger
&b);
672
678
BigInteger
& operator*=(
const
BigInteger
&b);
679
685
BigInteger
& operator/=(
const
BigInteger
&b);
686
692
BigInteger
& operator%=(
const
BigInteger
&b);
693
701
QCA::SecureArray
toArray()
const
;
702
712
void
fromArray(
const
QCA::SecureArray
&a);
713
723
QString toString()
const
;
724
737
bool
fromString(
const
QString &s);
738
761
int
compare(
const
BigInteger
&n)
const
;
762
769
inline
bool
operator==
(
const
BigInteger
&other)
const
770
{
771
return
(compare(other) == 0);
772
}
773
780
inline
bool
operator!=
(
const
BigInteger
&other)
const
781
{
782
return
!(*
this
== other);
783
}
784
792
inline
bool
operator<=
(
const
BigInteger
&other)
const
793
{
794
return
(compare(other) <= 0);
795
}
796
804
inline
bool
operator>=
(
const
BigInteger
&other)
const
805
{
806
return
(compare(other) >= 0);
807
}
808
816
inline
bool
operator<
(
const
BigInteger
&other)
const
817
{
818
return
(compare(other) < 0);
819
}
820
828
inline
bool
operator>
(
const
BigInteger
&other)
const
829
{
830
return
(compare(other) > 0);
831
}
832
833
private
:
834
class
Private;
835
QSharedDataPointer<Private> d;
836
};
837
838
839
848
QCA_EXPORT QTextStream &operator<<(QTextStream &stream,
const
BigInteger &b);
849
850
851
}
852
853
#endif
Generated on Wed Mar 2 2016 00:11:48 for Qt Cryptographic Architecture by
1.8.4