File: XSECCryptoException.cpp

package info (click to toggle)
xml-security-c 3.0.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,444 kB
  • sloc: cpp: 25,072; sh: 4,495; makefile: 361; perl: 228
file content (114 lines) | stat: -rw-r--r-- 2,475 bytes parent folder | download
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
/**
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements. See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership. The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied. See the License for the
 * specific language governing permissions and limitations
 * under the License.
 */

/*
 * XSEC
 *
 * XSECCryptoException:= How we throw exceptions in XSEC
 *
 * Author(s): Berin Lautenbach
 *
 * $Id$
 *
 */

#include <xsec/enc/XSECCryptoException.hpp>

#include <stdlib.h>
#include <string.h>

const char* XSECCryptoExceptionStrings[] = {

	"No Error",
	"General error occurred somewhere in cryptographic routines",
	"Error Creating SHA1 MD",
	"Error in Base64",
	"Memory allocation error",
	"X509 Error",
	"DSA Error",
	"RSA Error",
	"Symmetric Error",
    "EC Error",
	"Unsupported Algorithm"

};

XSECCryptoException::XSECCryptoException(XSECCryptoExceptionType eNum, const char * inMsg) {

	if (eNum > UnknownError)
		type = UnknownError;
	else
		type = eNum;

	if (inMsg != NULL) {
		msg = new char[strlen(inMsg) + 1];
		strcpy(msg, inMsg);
	}
	else {
		msg = new char[strlen(XSECCryptoExceptionStrings[type]) + 1];
		strcpy(msg, XSECCryptoExceptionStrings[type]);
	}

}

XSECCryptoException::XSECCryptoException(XSECCryptoExceptionType eNum, safeBuffer &inMsg) {

	if (eNum > UnknownError)
		type = UnknownError;
	else
		type = eNum;

	
	msg = new char[strlen((char *) inMsg.rawBuffer()) + 1];
	strcpy(msg, (char *) inMsg.rawBuffer());

}

XSECCryptoException::XSECCryptoException(const XSECCryptoException &toCopy) {

	// Copy Constructor

	type = toCopy.type;
	if (toCopy.msg == NULL)
		msg = NULL;
	else {

		msg = new char[strlen(toCopy.msg) + 1];
		strcpy(msg, toCopy.msg);
	}
}

XSECCryptoException::~XSECCryptoException() {

	if (msg != NULL)
		delete[] msg;

}

const char * XSECCryptoException::getMsg(void) const {

	return msg;

}

XSECCryptoException::XSECCryptoExceptionType XSECCryptoException::getType(void) const {

	return type;

}