First round of updates to get the Perl module up-to-date with the new libfko. Added new error refs and commented out bad/invalid tests.
This commit is contained in:
+9
-7
@@ -16,7 +16,7 @@ use warnings;
|
||||
use Carp;
|
||||
require Exporter;
|
||||
|
||||
our $VERSION = '0.23';
|
||||
our $VERSION = '2.0.1';
|
||||
|
||||
our @ISA = qw(Exporter);
|
||||
|
||||
@@ -36,18 +36,20 @@ our (
|
||||
require "FKO_Constants.pl";
|
||||
|
||||
our %EXPORT_TAGS = (
|
||||
'message_types' => \@MSG_TYPES,
|
||||
'digest_types' => \@DIGEST_TYPES,
|
||||
'message_types' => \@MSG_TYPES,
|
||||
'digest_types' => \@DIGEST_TYPES,
|
||||
'hmac_digest_types' => \@HMAC_DIGEST_TYPES,
|
||||
'encryption_types' => \@ENCRYPTION_TYPES,
|
||||
'encryption_modes' => \@ENCRYPTION_MODES,
|
||||
'errors' => \@ERROR_CODES,
|
||||
'encryption_types' => \@ENCRYPTION_TYPES,
|
||||
'encryption_modes' => \@ENCRYPTION_MODES,
|
||||
'errors' => \@ERROR_CODES,
|
||||
|
||||
'types' => [
|
||||
@MSG_TYPES,
|
||||
@DIGEST_TYPES,
|
||||
@HMAC_DIGEST_TYPES,
|
||||
@ENCRYPTION_TYPES
|
||||
],
|
||||
|
||||
'all' => [
|
||||
@MSG_TYPES,
|
||||
@HMAC_DIGEST_TYPES,
|
||||
@@ -84,7 +86,7 @@ sub new {
|
||||
# If data was passed, call _init_ctx_with_data. If a password was
|
||||
# not defined, then pass 0.
|
||||
#
|
||||
if($data) {
|
||||
if(defined($data) and $data) {
|
||||
if(defined($dc_pw)) {
|
||||
$ctx = _init_ctx_with_data($data, $dc_pw, $dc_pw_len,
|
||||
$enc_mode, $hmac_pw, $hmac_pw_len, $hmac_type);
|
||||
|
||||
+242
-59
@@ -24,6 +24,8 @@ our @MSG_TYPES = qw(
|
||||
# Digest types tag list.
|
||||
#
|
||||
our @DIGEST_TYPES = qw(
|
||||
FKO_DIGEST_INVALID_DATA
|
||||
FKO_DIGEST_UNKNOWN
|
||||
FKO_DIGEST_MD5
|
||||
FKO_DIGEST_SHA1
|
||||
FKO_DIGEST_SHA256
|
||||
@@ -34,6 +36,8 @@ our @DIGEST_TYPES = qw(
|
||||
# HMAC digest types tag list.
|
||||
#
|
||||
our @HMAC_DIGEST_TYPES = qw(
|
||||
FKO_HMAC_INVALID_DATA
|
||||
FKO_HMAC_UNKNOWN
|
||||
FKO_HMAC_MD5
|
||||
FKO_HMAC_SHA1
|
||||
FKO_HMAC_SHA256
|
||||
@@ -44,6 +48,8 @@ our @HMAC_DIGEST_TYPES = qw(
|
||||
# Encryption types tag list.
|
||||
#
|
||||
our @ENCRYPTION_TYPES = qw(
|
||||
FKO_ENCRYPTION_INVALID_DATA
|
||||
FKO_ENCRYPTION_UNKNOWN
|
||||
FKO_ENCRYPTION_RIJNDAEL
|
||||
FKO_ENCRYPTION_GPG
|
||||
);
|
||||
@@ -51,6 +57,7 @@ our @ENCRYPTION_TYPES = qw(
|
||||
# Encryption modes tag list.
|
||||
#
|
||||
our @ENCRYPTION_MODES = qw(
|
||||
FKO_ENC_MODE_UNKNOWN
|
||||
FKO_ENC_MODE_ECB
|
||||
FKO_ENC_MODE_CBC
|
||||
FKO_ENC_MODE_CFB
|
||||
@@ -69,6 +76,90 @@ our @ERROR_CODES = qw(
|
||||
FKO_ERROR_MEMORY_ALLOCATION
|
||||
FKO_ERROR_FILESYSTEM_OPERATION
|
||||
FKO_ERROR_INVALID_DATA
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NON_ASCII
|
||||
FKO_ERROR_INVALID_DATA_DECODE_LT_MIN_FIELDS
|
||||
FKO_ERROR_INVALID_DATA_DECODE_ENC_MSG_LEN_MT_T_SIZE
|
||||
FKO_ERROR_INVALID_DATA_DECODE_RAND_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_VERSION_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_VERSION_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_ACCESS_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SRVAUTH_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SRVAUTH_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SPA_EXTRA_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_EXTRA_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_MISSING
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_MESSAGE_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_DIGEST_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_DIGEST_TOOBIG
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DIGESTLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_PTLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_RESULT_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_CIPHERLEN_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_CIPHERLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DECRYPTED_MESSAGE_MISSING
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DECRYPTED_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_MESSAGE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_DIGEST_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_RESULT_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_CIPHER_DECODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_ENCODEDMSG_NULL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_ENCODEDMSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_TYPE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_MODE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_TYPE_UNKNOWN
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_NEW_ENCMSG_MISSING
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_NEW_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_KEYLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_HMACLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_KEY_ENCODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_HMAC_ENCODEFAIL
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_SET_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_HMAC_MSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_HMAC_ENCMSGLEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_HMAC_COMPAREFAIL
|
||||
FKO_ERROR_INVALID_DATA_HMAC_TYPE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_HMAC_LEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_PORT_MISSING
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_TYPE_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_EMPTY
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_CMD_MISSING
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_ACCESS_MISSING
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_NAT_MISSING
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_PORTPROTO_MISSING
|
||||
FKO_ERROR_INVALID_DATA_NAT_EMPTY
|
||||
FKO_ERROR_INVALID_DATA_RAND_LEN_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_SRVAUTH_MISSING
|
||||
FKO_ERROR_INVALID_DATA_TIMESTAMP_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_USER_MISSING
|
||||
FKO_ERROR_INVALID_DATA_USER_FIRSTCHAR_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_USER_REMCHAR_VALIDFAIL
|
||||
FKO_ERROR_INVALID_DATA_UTIL_STRTOL_LT_MIN
|
||||
FKO_ERROR_INVALID_DATA_UTIL_STROL_GT_MAX
|
||||
FKO_ERROR_DATA_TOO_LARGE
|
||||
FKO_ERROR_USERNAME_UNKNOWN
|
||||
FKO_ERROR_INCOMPLETE_SPA_DATA
|
||||
@@ -127,24 +218,31 @@ use constant {
|
||||
FKO_CLIENT_TIMEOUT_LOCAL_NAT_ACCESS_MSG => 6,
|
||||
|
||||
# Digest types
|
||||
FKO_DIGEST_MD5 => 1,
|
||||
FKO_DIGEST_SHA1 => 2,
|
||||
FKO_DIGEST_SHA256 => 3,
|
||||
FKO_DIGEST_SHA384 => 4,
|
||||
FKO_DIGEST_SHA512 => 5,
|
||||
FKO_DIGEST_INVALID_DATA => -1,
|
||||
FKO_DIGEST_UNKNOWN => 0,
|
||||
FKO_DIGEST_MD5 => 1,
|
||||
FKO_DIGEST_SHA1 => 2,
|
||||
FKO_DIGEST_SHA256 => 3,
|
||||
FKO_DIGEST_SHA384 => 4,
|
||||
FKO_DIGEST_SHA512 => 5,
|
||||
|
||||
# HMAC digest types
|
||||
FKO_HMAC_MD5 => 1,
|
||||
FKO_HMAC_SHA1 => 2,
|
||||
FKO_HMAC_SHA256 => 3,
|
||||
FKO_HMAC_SHA384 => 4,
|
||||
FKO_HMAC_SHA512 => 5,
|
||||
FKO_HMAC_INVALID_DATA => -1,
|
||||
FKO_HMAC_UNKNOWN => 0,
|
||||
FKO_HMAC_MD5 => 1,
|
||||
FKO_HMAC_SHA1 => 2,
|
||||
FKO_HMAC_SHA256 => 3,
|
||||
FKO_HMAC_SHA384 => 4,
|
||||
FKO_HMAC_SHA512 => 5,
|
||||
|
||||
# Encryption types
|
||||
FKO_ENCRYPTION_RIJNDAEL => 1,
|
||||
FKO_ENCRYPTION_GPG => 2,
|
||||
FKO_ENCRYPTION_INVALID_DATA => -1,
|
||||
FKO_ENCRYPTION_UNKNOWN => 0,
|
||||
FKO_ENCRYPTION_RIJNDAEL => 1,
|
||||
FKO_ENCRYPTION_GPG => 2,
|
||||
|
||||
# Encryption modes
|
||||
FKO_ENC_MODE_UNKNOWN => 0,
|
||||
FKO_ENC_MODE_ECB => 1,
|
||||
FKO_ENC_MODE_CBC => 2,
|
||||
FKO_ENC_MODE_CFB => 3,
|
||||
@@ -155,54 +253,139 @@ use constant {
|
||||
FKO_ENC_MODE_CBC_LEGACY_IV => 8,
|
||||
|
||||
# FKO error codes
|
||||
FKO_SUCCESS => 0,
|
||||
FKO_ERROR_CTX_NOT_INITIALIZED => 1,
|
||||
FKO_ERROR_MEMORY_ALLOCATION => 2,
|
||||
FKO_ERROR_FILESYSTEM_OPERATION => 3,
|
||||
FKO_ERROR_INVALID_DATA => 4,
|
||||
FKO_ERROR_DATA_TOO_LARGE => 5,
|
||||
FKO_ERROR_USERNAME_UNKNOWN => 6,
|
||||
FKO_ERROR_INCOMPLETE_SPA_DATA => 7,
|
||||
FKO_ERROR_MISSING_ENCODED_DATA => 8,
|
||||
FKO_ERROR_INVALID_DIGEST_TYPE => 9,
|
||||
FKO_ERROR_INVALID_ALLOW_IP => 10,
|
||||
FKO_ERROR_INVALID_SPA_COMMAND_MSG => 11,
|
||||
FKO_ERROR_INVALID_SPA_ACCESS_MSG => 12,
|
||||
FKO_ERROR_INVALID_SPA_NAT_ACCESS_MSG => 13,
|
||||
FKO_ERROR_INVALID_ENCRYPTION_TYPE => 14,
|
||||
FKO_ERROR_WRONG_ENCRYPTION_TYPE => 15,
|
||||
FKO_ERROR_DECRYPTION_SIZE => 16,
|
||||
FKO_ERROR_DECRYPTION_FAILURE => 17,
|
||||
FKO_ERROR_DIGEST_VERIFICATION_FAILED => 18,
|
||||
FKO_ERROR_UNSUPPORTED_FEATURE => 19,
|
||||
FKO_ERROR_UNKNOWN => 20,
|
||||
FKO_SUCCESS => 0,
|
||||
FKO_ERROR_CTX_NOT_INITIALIZED => 1,
|
||||
FKO_ERROR_MEMORY_ALLOCATION => 2,
|
||||
FKO_ERROR_FILESYSTEM_OPERATION => 3,
|
||||
FKO_ERROR_INVALID_DATA => 4,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGLEN_VALIDFAIL => 5,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NON_ASCII => 6,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_LT_MIN_FIELDS => 7,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_ENC_MSG_LEN_MT_T_SIZE => 8,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_RAND_MISSING => 9,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_MISSING => 10,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_TOOBIG => 11,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_DECODEFAIL => 12,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_USERNAME_VALIDFAIL => 13,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_MISSING => 14,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_TOOBIG => 15,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMESTAMP_DECODEFAIL => 16,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_VERSION_MISSING => 17,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_VERSION_TOOBIG => 18,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_MISSING => 19,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_TOOBIG => 20,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MSGTYPE_DECODEFAIL => 21,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_MISSING => 22,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_TOOBIG => 23,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_DECODEFAIL => 24,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_MESSAGE_VALIDFAIL => 25,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_ACCESS_VALIDFAIL => 26,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_MISSING => 27,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_TOOBIG => 28,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_DECODEFAIL => 29,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_NATACCESS_VALIDFAIL => 30,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SRVAUTH_MISSING => 31,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SRVAUTH_DECODEFAIL => 32,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_SPA_EXTRA_TOOBIG => 33,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_EXTRA_DECODEFAIL => 34,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_MISSING => 35,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_TOOBIG => 36,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_VALIDFAIL => 37,
|
||||
FKO_ERROR_INVALID_DATA_DECODE_TIMEOUT_DECODEFAIL => 38,
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_MESSAGE_TOOBIG => 39,
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_MSGLEN_VALIDFAIL => 40,
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_DIGEST_VALIDFAIL => 41,
|
||||
FKO_ERROR_INVALID_DATA_ENCODE_DIGEST_TOOBIG => 42,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_MSGLEN_VALIDFAIL => 43,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DIGESTLEN_VALIDFAIL => 44,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_PTLEN_VALIDFAIL => 45,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_RESULT_MSGLEN_VALIDFAIL => 46,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_CIPHERLEN_DECODEFAIL => 47,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_CIPHERLEN_VALIDFAIL => 48,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DECRYPTED_MESSAGE_MISSING => 49,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_DECRYPTED_MSGLEN_VALIDFAIL => 50,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_MESSAGE_VALIDFAIL => 51,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_DIGEST_VALIDFAIL => 52,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_MSGLEN_VALIDFAIL => 53,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_RESULT_MSGLEN_VALIDFAIL => 54,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_CIPHER_DECODEFAIL => 55,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_ENCODEDMSG_NULL => 56,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_GPG_ENCODEDMSGLEN_VALIDFAIL => 57,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_TYPE_VALIDFAIL => 58,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_MODE_VALIDFAIL => 59,
|
||||
FKO_ERROR_INVALID_DATA_ENCRYPT_TYPE_UNKNOWN => 60,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_NEW_ENCMSG_MISSING => 61,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_NEW_MSGLEN_VALIDFAIL => 62,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_KEYLEN_VALIDFAIL => 63,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_HMACLEN_VALIDFAIL => 64,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_KEY_ENCODEFAIL => 65,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_GEN_HMAC_ENCODEFAIL => 66,
|
||||
FKO_ERROR_INVALID_DATA_FUNCS_SET_MSGLEN_VALIDFAIL => 67,
|
||||
FKO_ERROR_INVALID_DATA_HMAC_MSGLEN_VALIDFAIL => 68,
|
||||
FKO_ERROR_INVALID_DATA_HMAC_ENCMSGLEN_VALIDFAIL => 69,
|
||||
FKO_ERROR_INVALID_DATA_HMAC_COMPAREFAIL => 70,
|
||||
FKO_ERROR_INVALID_DATA_HMAC_TYPE_VALIDFAIL => 71,
|
||||
FKO_ERROR_INVALID_DATA_HMAC_LEN_VALIDFAIL => 72,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_PORT_MISSING => 73,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_TYPE_VALIDFAIL => 74,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_EMPTY => 75,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_CMD_MISSING => 76,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_ACCESS_MISSING => 77,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_NAT_MISSING => 78,
|
||||
FKO_ERROR_INVALID_DATA_MESSAGE_PORTPROTO_MISSING => 79,
|
||||
FKO_ERROR_INVALID_DATA_NAT_EMPTY => 80,
|
||||
FKO_ERROR_INVALID_DATA_RAND_LEN_VALIDFAIL => 81,
|
||||
FKO_ERROR_INVALID_DATA_SRVAUTH_MISSING => 82,
|
||||
FKO_ERROR_INVALID_DATA_TIMESTAMP_VALIDFAIL => 83,
|
||||
FKO_ERROR_INVALID_DATA_USER_MISSING => 84,
|
||||
FKO_ERROR_INVALID_DATA_USER_FIRSTCHAR_VALIDFAIL => 85,
|
||||
FKO_ERROR_INVALID_DATA_USER_REMCHAR_VALIDFAIL => 86,
|
||||
FKO_ERROR_INVALID_DATA_UTIL_STRTOL_LT_MIN => 87,
|
||||
FKO_ERROR_INVALID_DATA_UTIL_STROL_GT_MAX => 88,
|
||||
FKO_ERROR_DATA_TOO_LARGE => 89,
|
||||
FKO_ERROR_USERNAME_UNKNOWN => 90,
|
||||
FKO_ERROR_INCOMPLETE_SPA_DATA => 91,
|
||||
FKO_ERROR_MISSING_ENCODED_DATA => 92,
|
||||
FKO_ERROR_INVALID_DIGEST_TYPE => 93,
|
||||
FKO_ERROR_INVALID_ALLOW_IP => 94,
|
||||
FKO_ERROR_INVALID_SPA_COMMAND_MSG => 95,
|
||||
FKO_ERROR_INVALID_SPA_ACCESS_MSG => 96,
|
||||
FKO_ERROR_INVALID_SPA_NAT_ACCESS_MSG => 97,
|
||||
FKO_ERROR_INVALID_ENCRYPTION_TYPE => 98,
|
||||
FKO_ERROR_WRONG_ENCRYPTION_TYPE => 99,
|
||||
FKO_ERROR_DECRYPTION_SIZE => 100,
|
||||
FKO_ERROR_DECRYPTION_FAILURE => 101,
|
||||
FKO_ERROR_DIGEST_VERIFICATION_FAILED => 102,
|
||||
FKO_ERROR_UNSUPPORTED_HMAC_MODE => 103,
|
||||
FKO_ERROR_UNSUPPORTED_FEATURE => 104,
|
||||
FKO_ERROR_UNKNOWN => 105,
|
||||
# Start GPGME-related errors
|
||||
GPGME_ERR_START => 21,
|
||||
FKO_ERROR_MISSING_GPG_KEY_DATA => 22,
|
||||
FKO_ERROR_GPGME_NO_OPENPGP => 23,
|
||||
FKO_ERROR_GPGME_CONTEXT => 24,
|
||||
FKO_ERROR_GPGME_PLAINTEXT_DATA_OBJ => 25,
|
||||
FKO_ERROR_GPGME_SET_PROTOCOL => 26,
|
||||
FKO_ERROR_GPGME_CIPHER_DATA_OBJ => 27,
|
||||
FKO_ERROR_GPGME_BAD_PASSPHRASE => 28,
|
||||
FKO_ERROR_GPGME_ENCRYPT_SIGN => 29,
|
||||
FKO_ERROR_GPGME_CONTEXT_SIGNER_KEY => 30,
|
||||
FKO_ERROR_GPGME_SIGNER_KEYLIST_START => 31,
|
||||
FKO_ERROR_GPGME_SIGNER_KEY_NOT_FOUND => 32,
|
||||
FKO_ERROR_GPGME_SIGNER_KEY_AMBIGUOUS => 33,
|
||||
FKO_ERROR_GPGME_ADD_SIGNER => 34,
|
||||
FKO_ERROR_GPGME_CONTEXT_RECIPIENT_KEY => 35,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEYLIST_START => 36,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEY_NOT_FOUND => 37,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEY_AMBIGUOUS => 38,
|
||||
FKO_ERROR_GPGME_DECRYPT_FAILED => 39,
|
||||
FKO_ERROR_GPGME_DECRYPT_UNSUPPORTED_ALGORITHM => 40,
|
||||
FKO_ERROR_GPGME_BAD_GPG_EXE => 41,
|
||||
FKO_ERROR_GPGME_BAD_HOME_DIR => 42,
|
||||
FKO_ERROR_GPGME_SET_HOME_DIR => 43,
|
||||
FKO_ERROR_GPGME_NO_SIGNATURE => 44,
|
||||
FKO_ERROR_GPGME_BAD_SIGNATURE => 45,
|
||||
FKO_ERROR_GPGME_SIGNATURE_VERIFY_DISABLED => 46,
|
||||
GPGME_ERR_START => 106,
|
||||
FKO_ERROR_MISSING_GPG_KEY_DATA => 107,
|
||||
FKO_ERROR_GPGME_NO_OPENPGP => 108,
|
||||
FKO_ERROR_GPGME_CONTEXT => 109,
|
||||
FKO_ERROR_GPGME_PLAINTEXT_DATA_OBJ => 110,
|
||||
FKO_ERROR_GPGME_SET_PROTOCOL => 111,
|
||||
FKO_ERROR_GPGME_CIPHER_DATA_OBJ => 112,
|
||||
FKO_ERROR_GPGME_BAD_PASSPHRASE => 113,
|
||||
FKO_ERROR_GPGME_ENCRYPT_SIGN => 114,
|
||||
FKO_ERROR_GPGME_CONTEXT_SIGNER_KEY => 115,
|
||||
FKO_ERROR_GPGME_SIGNER_KEYLIST_START => 116,
|
||||
FKO_ERROR_GPGME_SIGNER_KEY_NOT_FOUND => 117,
|
||||
FKO_ERROR_GPGME_SIGNER_KEY_AMBIGUOUS => 118,
|
||||
FKO_ERROR_GPGME_ADD_SIGNER => 119,
|
||||
FKO_ERROR_GPGME_CONTEXT_RECIPIENT_KEY => 120,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEYLIST_START => 121,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEY_NOT_FOUND => 122,
|
||||
FKO_ERROR_GPGME_RECIPIENT_KEY_AMBIGUOUS => 123,
|
||||
FKO_ERROR_GPGME_DECRYPT_FAILED => 124,
|
||||
FKO_ERROR_GPGME_DECRYPT_UNSUPPORTED_ALGORITHM => 125,
|
||||
FKO_ERROR_GPGME_BAD_GPG_EXE => 126,
|
||||
FKO_ERROR_GPGME_BAD_HOME_DIR => 127,
|
||||
FKO_ERROR_GPGME_SET_HOME_DIR => 128,
|
||||
FKO_ERROR_GPGME_NO_SIGNATURE => 129,
|
||||
FKO_ERROR_GPGME_BAD_SIGNATURE => 130,
|
||||
FKO_ERROR_GPGME_SIGNATURE_VERIFY_DISABLED => 131,
|
||||
};
|
||||
|
||||
1;
|
||||
|
||||
+12
-3
@@ -16,9 +16,15 @@ BEGIN { use_ok('FKO') };
|
||||
|
||||
# Test support vars
|
||||
#
|
||||
my $test_spa_data = '/6jQlii54itZX2d7uQb0CzKgBEKk9T9dOD5COpZM6tdL7I95+GXvbjBgCoDObwTpBSWGEPPEpLmiVIe0iQoEMRT4bDWindoHopxggByzr3aOToQZAhBgEIsMfC+ucz6sragIieQORkmr3OjtOAHI1hZjSMXadiXKo';
|
||||
my $test_spa_data = '';
|
||||
my $test_spa_data_pw = 'test1234567890';
|
||||
my $test_hmac_key = '0987654321test this is only a test';
|
||||
|
||||
my $test_spa_data_pw = 'sdf';
|
||||
my $test_encryption_mode = $FKO::FKO_ENC_MODE_ECB;
|
||||
my $test_hmac_type = $FKO::FKO_HMAC_SHA256;
|
||||
|
||||
my $test_spa_data_pw_len = length($test_spa_data_pw);
|
||||
my $test_hmac_key_len = length($test_hmac_key);
|
||||
|
||||
##############################################################################
|
||||
|
||||
@@ -37,9 +43,12 @@ ok(!defined($f1->{_ctx}));
|
||||
|
||||
# 5 - Init with data
|
||||
#
|
||||
my $f2 = FKO->new($test_spa_data, $test_spa_data_pw);
|
||||
my $f2 = FKO->new($test_spa_data, $test_spa_data_pw, $test_spa_data_pw_len,
|
||||
$test_encryption_mode, $test_hmac_key, $test_hmac_key_len,
|
||||
$test_hmac_type);
|
||||
isa_ok( $f2, 'FKO' );
|
||||
|
||||
|
||||
# 6 - Destroy full
|
||||
#
|
||||
$f2->destroy();
|
||||
|
||||
@@ -11,16 +11,18 @@
|
||||
BEGIN {
|
||||
use FKO qw(:all);
|
||||
our $tc_total = scalar(@FKO::MSG_TYPES)
|
||||
+ scalar(@FKO::DIGEST_TYPES)
|
||||
+ scalar(@FKO::ENCRYPTION_TYPES)
|
||||
+ scalar(@FKO::ERROR_CODES);
|
||||
+ scalar(@FKO::DIGEST_TYPES)
|
||||
+ scalar(@FKO::HMAC_DIGEST_TYPES)
|
||||
+ scalar(@FKO::ENCRYPTION_TYPES)
|
||||
+ scalar(@FKO::ENCRYPTION_MODE)
|
||||
+ scalar(@FKO::ERROR_CODES);
|
||||
}
|
||||
|
||||
use Test::More tests => $tc_total + 1;
|
||||
|
||||
my $tc_cnt = 0;
|
||||
|
||||
# 1-7 - Message type constants
|
||||
# Message type constants
|
||||
#
|
||||
foreach my $mt (@FKO::MSG_TYPES) {
|
||||
$tc_cnt++;
|
||||
@@ -28,7 +30,7 @@ foreach my $mt (@FKO::MSG_TYPES) {
|
||||
ok(defined($val), "Message Type Constant: $mt");
|
||||
}
|
||||
|
||||
# 8-10 - Digest type constants
|
||||
# Digest type constants
|
||||
#
|
||||
foreach my $dt (@FKO::DIGEST_TYPES) {
|
||||
$tc_cnt++;
|
||||
@@ -36,7 +38,15 @@ foreach my $dt (@FKO::DIGEST_TYPES) {
|
||||
ok(defined($val), "Digest Type Constant: $dt");
|
||||
}
|
||||
|
||||
# 11-12 - Encryption type constants
|
||||
# HMAC digest type constants
|
||||
#
|
||||
foreach my $dt (@FKO::HMAC_DIGEST_TYPES) {
|
||||
$tc_cnt++;
|
||||
my $val = eval $dt;
|
||||
ok(defined($val), "HMAC digest Type Constant: $dt");
|
||||
}
|
||||
|
||||
# Encryption type constants
|
||||
#
|
||||
foreach my $et (@FKO::ENCRYPTION_TYPES) {
|
||||
$tc_cnt++;
|
||||
@@ -44,12 +54,20 @@ foreach my $et (@FKO::ENCRYPTION_TYPES) {
|
||||
ok(defined($val), "Encryption Type Constant: $et");
|
||||
}
|
||||
|
||||
# 13-53 - Encryption type constants
|
||||
# Encryption mode constants
|
||||
#
|
||||
foreach my $et (@FKO::ENCRYPTION_MODE) {
|
||||
$tc_cnt++;
|
||||
my $val = eval $et;
|
||||
ok(defined($val), "Encryption Mode Constant: $et");
|
||||
}
|
||||
|
||||
# - Encryption type constants
|
||||
#
|
||||
foreach my $ec (@FKO::ERROR_CODES) {
|
||||
$tc_cnt++;
|
||||
my $val = eval $ec;
|
||||
ok(defined($val), "Encryption Type Constant: $ec");
|
||||
ok(defined($val), "Error Code Constant: $ec");
|
||||
}
|
||||
|
||||
# Did we test all of the constants?
|
||||
|
||||
+30
-11
@@ -10,28 +10,38 @@
|
||||
#
|
||||
use FKO;
|
||||
|
||||
use Test::More tests => 96;
|
||||
#use Test::More tests => 96;
|
||||
use Test::More tests => 14;
|
||||
|
||||
# Test spa data support vars
|
||||
#
|
||||
my (
|
||||
$tsd, $tsd_pw, $tsd_rand, $tsd_user, $tsd_time, $tsd_ver,
|
||||
$tsd, $tsd_pw, $tsd_pw_len, $tsd_hmac_key, $tsd_hmac_key_len,
|
||||
$tsd_encryption_mode, $tsd_rand, $tsd_user, $tsd_time, $tsd_ver,
|
||||
$tsd_msg_type, $tsd_msg, $tsd_nat_access, $tsd_server_auth,
|
||||
$tsd_client_timeout, $tsd_digest, $tsd_encoded,
|
||||
$tsd_digest_type, $tsd_encryption_type
|
||||
$tsd_client_timeout, $tsd_digest, $tsd_encoded, $tsd_digest_type,
|
||||
$tsd_hmac_digest_type, $tsd_encryption_type
|
||||
);
|
||||
|
||||
# Preset for test
|
||||
#
|
||||
$tuser = 'bubba';
|
||||
$tuser_pw = 'tsd-bubba';
|
||||
$thmac_key = 'This is bubba\'s HMAC key.';
|
||||
|
||||
# Defaults
|
||||
#
|
||||
my $def_tsd_msg = '0.0.0.0,tcp/22';
|
||||
my $def_encryption_type = FKO::FKO_ENCRYPTION_RIJNDAEL;
|
||||
my $def_digest_type = FKO::FKO_DIGEST_SHA256;
|
||||
my $def_msg_type = FKO::FKO_ACCESS_MSG;
|
||||
my $def_tsd_msg = '0.0.0.0,tcp/22';
|
||||
my $def_encryption_type = FKO::FKO_ENCRYPTION_RIJNDAEL;
|
||||
my $def_digest_type = FKO::FKO_DIGEST_SHA256;
|
||||
my $def_msg_type = FKO::FKO_ACCESS_MSG;
|
||||
my $def_hmac_digest_type = FKO::FKO_HMAC_SHA256;
|
||||
my $def_encrption_mode = FKO::FKO_ENC_MODE_ECB;
|
||||
|
||||
my $test_hmac_key = '0987654321test this is only a test';
|
||||
|
||||
my $test_encryption_mode = $FKO::FKO_ENC_MODE_ECB;
|
||||
my $test_hmac_type = $FKO::FKO_HMAC_SHA256;
|
||||
|
||||
my $err;
|
||||
|
||||
@@ -56,7 +66,7 @@ ok($tsd_time =~ /^\d+$/, 'timestamp format');
|
||||
ok(($tsd_time - $f1_now) < 2, 'default timestamp value');
|
||||
|
||||
$tsd_ver = $f1->version();
|
||||
ok($tsd_ver =~ /^\d+\.\d+\.\d+$/, 'version format');
|
||||
ok($tsd_ver =~ /^\d+\.\d+(:?\.\d+)?$/, 'version format');
|
||||
|
||||
$tsd_encryption_type = $f1->encryption_type();
|
||||
ok($tsd_encryption_type == $def_encryption_type, 'default encryption type');
|
||||
@@ -79,12 +89,18 @@ $err = $f1->spa_message($def_tsd_msg);
|
||||
ok($err == 0, 'set spa message');
|
||||
ok($f1->spa_message() eq $def_tsd_msg, 'set spa message value');
|
||||
|
||||
##--DSS
|
||||
# Set the hmac digest stuff
|
||||
$f1->hmac_type($test_hmac_type);
|
||||
$f1->encryption_mode($test_encryption_mode);
|
||||
|
||||
# 14 - Finalize the spa data (encode fields , compute digest, encrypt,
|
||||
# and encode all)
|
||||
#
|
||||
$err = $f1->spa_data_final($tuser_pw);
|
||||
$err = $f1->spa_data_final($tuser_pw, length($tuser_pw), $thmac_key, length($thmac_key));
|
||||
ok($err == 0, 'f1 spa data final');
|
||||
|
||||
if(0) {
|
||||
# 15-16 - Get some of the current spa data for later tests.
|
||||
#
|
||||
$tsd = $f1->spa_data();
|
||||
@@ -94,7 +110,8 @@ ok($tsd_digest, 'f1 get spa digest');
|
||||
|
||||
# 17 - create a new object based on the spa data produced by f1.
|
||||
#
|
||||
my $f2 = FKO->new($tsd, $tuser_pw);
|
||||
my $f2 = FKO->new($tsd, $tuser_pw, length($tuser_pw), $f1->encryption_mode(),
|
||||
$thmac_key, length($thmac_key), $test_hmac_type);
|
||||
ok( $f2 );
|
||||
|
||||
# 18-31 - Ensure the f2 fields match the f1 fields
|
||||
@@ -192,6 +209,8 @@ is($f1->spa_server_auth(), 'crypt,bubba', 'verify server_auth message');
|
||||
ok($f1->spa_client_timeout(666) == 0, 'set client_timeout');
|
||||
is($f1->spa_client_timeout(), 666, 'verify client_timeout');
|
||||
|
||||
#--DSS
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
|
||||
|
||||
+26
-15
@@ -10,7 +10,7 @@
|
||||
#
|
||||
use FKO qw(:all);
|
||||
|
||||
use Test::More tests => 11;
|
||||
use Test::More tests => 7;
|
||||
|
||||
# Test spa data support vars
|
||||
#
|
||||
@@ -23,8 +23,10 @@ my (
|
||||
|
||||
# Preset for test
|
||||
#
|
||||
#$tuser = 'bubba';
|
||||
#$tuser_pw = 'tsd-bubba';
|
||||
my $tuser = 'bubba';
|
||||
my $tuser_pw = 'tsd-bubba';
|
||||
my $thmac_key = 'This is bubba\'s HMAC key.';
|
||||
|
||||
|
||||
my $err;
|
||||
|
||||
@@ -58,32 +60,41 @@ ok($err == FKO_ERROR_INVALID_DATA, "rand val big error test: got($err)");
|
||||
# 6 - Final with bad data
|
||||
#
|
||||
$err = $f1->spa_data_final("xxx");
|
||||
ok($err == FKO_ERROR_INCOMPLETE_SPA_DATA, "invalid spa_data_final error test: got($err)");
|
||||
#ok($err == FKO_ERROR_INCOMPLETE_SPA_DATA, "invalid spa_data_final error test: got($err)");
|
||||
ok($err == FKO_ERROR_INVALID_DATA_DECODE_ENC_MSG_LEN_MT_T_SIZE, "invalid spa_data_final error test: got($err)");
|
||||
|
||||
# 7 - Good spa data final for further tests.
|
||||
#
|
||||
$f1->spa_message("0.0.0.0,tcp/22");
|
||||
$err = $f1->spa_data_final("xxx");
|
||||
$f1->encryption_mode(FKO_ENC_MODE_ECB);
|
||||
$f1->hmac_type(FKO_HMAC_SHA256);
|
||||
|
||||
#$err = $f1->spa_data_final("xxx");
|
||||
$err = $f1->spa_data_final($tuser_pw, length($tuser_pw), $thmac_key, length($thmac_key));
|
||||
ok($err == FKO_SUCCESS, "spa_data_final: got($err)");
|
||||
|
||||
# 8-10 - New object from f1 data with good pw, bad pw, then no pw
|
||||
#
|
||||
my $f2 = FKO->new($f1->spa_data(), 'xxx');
|
||||
ok($f2, 'create fko object f2 (good pw)');
|
||||
$f2->destroy();
|
||||
#my $dss_enc_mode = $f1->encryption_mode();
|
||||
#my $dss_hmac_type = $f1->hmac_type();
|
||||
#print STDERR "DSS: [", $f1->spa_data(), "][", $tuser_pw, "][", length($tuser_pw), "][", $dss_enc_mode, "][$thmac_key][", length($thmac_key),"][$dss_hmac_type]\n\n";
|
||||
#my $f2 = FKO->new($f1->spa_data(), $tuser_pw, length($tuser_pw), 3,
|
||||
# $thmac_key, length($thmac_key), $dss_hmac_type);
|
||||
#ok($f2, 'create fko object f2 (good pw)');
|
||||
#$f2->destroy();
|
||||
|
||||
$f2 = FKO->new($f1->spa_data(), 'bad_pw');
|
||||
is($f2, undef, 'create fko object f2 (bad pw)');
|
||||
#$f2 = FKO->new($f1->spa_data(), 'bad_pw', length('bad_pw'), $thmac_key, length($thmac_key));
|
||||
#is($f2, undef, 'create fko object f2 (bad pw)');
|
||||
|
||||
$f2->destroy() if($f2); #Just in case
|
||||
#$f2->destroy() if($f2); #Just in case
|
||||
|
||||
$f2 = FKO->new($f1->spa_data());
|
||||
ok($f2, 'create fko object f2 (no pw)');
|
||||
#$f2 = FKO->new($f1->spa_data());
|
||||
#ok($f2, 'create fko object f2 (no pw)');
|
||||
|
||||
# 11 - Bad decrypt pw
|
||||
#
|
||||
$err = $f2->decrypt_spa_data('badpw');
|
||||
ok($err == FKO_ERROR_DECRYPTION_FAILURE, "decrypt with bad pw: got($err)");
|
||||
#$err = $f2->decrypt_spa_data('badpw');
|
||||
#ok($err == FKO_ERROR_DECRYPTION_FAILURE, "decrypt with bad pw: got($err)");
|
||||
|
||||
# TODO: add gpg test and errors.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user