\MOD_encdb

All r/w operations on potentially encrypted fields in database should get initiated here.

TODO: would this enum be a good example for other tables? TODO: do we use InnoDB? TODO: do I use the correct character sets? TODO: should we use binary fields and don't use base64? TODO: what mysql datatype is appropriate for base64?

CREATE TABLE safe ( id int(11) NOT NULL auto_increment, val_admin text collate utf8_unicode_ci NOT NULL, val_member text collate utf8_unicode_ci NOT NULL, id_member int(11) NOT NULL, encryption enum('Y', 'N') collate utf8_unicode_ci NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='sensitive data' AUTO_INCREMENT=0;

Summary

Methods
Properties
Constants
__construct()
test()
writeEncrypted()
readEncryptedMemberValue()
readEncryptedAdminValue()
No public properties found
MODE
CIPHER
TABLE_NAME_REF_MEMBER
TABLE_NAME_REF_ADDR
TABLE_NAME
adminEncrypt()
adminDecrypt()
memberEncrypt()
memberDecrypt()
No protected properties found
N/A
initMember()
initAdmin()
$_supportedTables
$_cipherAndMode
$_ivSize
$_keySize
$_keyAdmin
$_ivAdmin
$_keyMember
$_ivMember
$_idMember
N/A

Constants

MODE

MODE

encryption strategy

CIPHER

CIPHER

TABLE_NAME_REF_MEMBER

TABLE_NAME_REF_MEMBER

TABLE_NAME_REF_ADDR

TABLE_NAME_REF_ADDR

TABLE_NAME

TABLE_NAME

Properties

$_supportedTables

$_supportedTables

$_cipherAndMode

$_cipherAndMode

$_ivSize

$_ivSize

$_keySize

$_keySize

$_keyAdmin

$_keyAdmin

key for encrypting by admin; this key is stored in a separate file

$_ivAdmin

$_ivAdmin

initialization vector

$_keyMember

$_keyMember

individual key for encryption of member data; this key is provided in every login as an offset of the password

$_ivMember

$_ivMember

initializiation vector

$_idMember

$_idMember

Methods

__construct()

__construct(int $tablename, int $rownumber,  $idMember,  $keyMember) : void

tablename and rownumber are required to build the initialization vector

Parameters

int $tablename

name of table expressed as an integer,

            e.g. MOD_enc::TABLE_NAME_REF_MEMBER
int $rownumber

number of row in the table afore mentioned

$idMember
$keyMember

test()

test()

writeEncrypted()

writeEncrypted(string $plainString) : int

Parameters

string $plainString

to be added after encrypting in new row

Returns

int —

rownumber of new row

readEncryptedMemberValue()

readEncryptedMemberValue( $id) : string

Parameters

$id

Returns

string —

decrypted plain string, gained by member key

readEncryptedAdminValue()

readEncryptedAdminValue( $id) : string

Parameters

$id

Returns

string —

decrypted plain string, gained by admin key

adminEncrypt()

adminEncrypt( $plainString)

Parameters

$plainString

adminDecrypt()

adminDecrypt( $encryptedString)

Parameters

$encryptedString

memberEncrypt()

memberEncrypt( $plainString)

Parameters

$plainString

memberDecrypt()

memberDecrypt( $encryptedString)

Parameters

$encryptedString

initMember()

initMember( $keyMember)

Parameters

$keyMember

initAdmin()

initAdmin()