public void setDbEncryptFunction( DbEncryptFunction dbEncryptFunction, DbEncrypt dbEncrypt, int dbLen) { this.dbEncryptFunction = dbEncryptFunction; this.dbEncrypted = true; this.dbBind = dbEncryptFunction.getEncryptBindSql(); this.dbEncryptedType = isLob() ? Types.BLOB : dbEncrypt.getEncryptDbType(); if (dbLen > 0) { setDbLength(dbLen); } }
private void setEncryption(DeployBeanProperty prop, boolean dbEncString, int dbLen) { util.checkEncryptKeyManagerDefined(prop.getFullBeanName()); ScalarType<?> st = prop.getScalarType(); if (byte[].class.equals(st.getType())) { // Always using Java client encryption rather than DB for encryption // of binary data (partially as this is not supported on all db's etc) // This could be reviewed at a later stage. ScalarTypeBytesBase baseType = (ScalarTypeBytesBase) st; DataEncryptSupport support = createDataEncryptSupport(prop); ScalarTypeBytesEncrypted encryptedScalarType = new ScalarTypeBytesEncrypted(baseType, support); prop.setScalarType(encryptedScalarType); prop.setLocalEncrypted(true); return; } if (dbEncString) { DbEncrypt dbEncrypt = util.getDbPlatform().getDbEncrypt(); if (dbEncrypt != null) { // check if we have a DB encryption function for this type int jdbcType = prop.getScalarType().getJdbcType(); DbEncryptFunction dbEncryptFunction = dbEncrypt.getDbEncryptFunction(jdbcType); if (dbEncryptFunction != null) { // Use DB functions to encrypt and decrypt prop.setDbEncryptFunction(dbEncryptFunction, dbEncrypt, dbLen); return; } } } prop.setScalarType(createScalarType(prop, st)); prop.setLocalEncrypted(true); if (dbLen > 0) { prop.setDbLength(dbLen); } }