Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
7047bef1
Commit
7047bef1
authored
Mar 02, 2015
by
Jan Lindström
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use standard InnoDB error mechanism on compression and encryption
error messages.
parent
1f1f9771
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
337 additions
and
264 deletions
+337
-264
mysql-test/suite/innodb/r/innodb-page_compression_snappy.result
...test/suite/innodb/r/innodb-page_compression_snappy.result
+1
-1
mysql-test/suite/innodb/r/innodb-page_encryption_log_encryption.result
...ite/innodb/r/innodb-page_encryption_log_encryption.result
+3
-2
mysql-test/suite/innodb/t/innodb-page_compression_snappy.test
...l-test/suite/innodb/t/innodb-page_compression_snappy.test
+1
-1
mysql-test/suite/innodb/t/innodb-page_encryption_log_encryption.test
...suite/innodb/t/innodb-page_encryption_log_encryption.test
+3
-2
storage/innobase/fil/fil0crypt.cc
storage/innobase/fil/fil0crypt.cc
+42
-16
storage/innobase/fil/fil0pagecompress.cc
storage/innobase/fil/fil0pagecompress.cc
+79
-93
storage/innobase/log/log0crypt.cc
storage/innobase/log/log0crypt.cc
+43
-20
storage/xtradb/fil/fil0crypt.cc
storage/xtradb/fil/fil0crypt.cc
+42
-16
storage/xtradb/fil/fil0pagecompress.cc
storage/xtradb/fil/fil0pagecompress.cc
+80
-93
storage/xtradb/log/log0crypt.cc
storage/xtradb/log/log0crypt.cc
+43
-20
No files found.
mysql-test/suite/innodb/r/innodb-page_compression_snappy.result
View file @
7047bef1
call mtr.add_suppression("
InnoDB: Warning:
Compression failed for space*");
call mtr.add_suppression("Compression failed for space*");
set global innodb_file_format = `barracuda`;
set global innodb_file_per_table = on;
set global innodb_compression_algorithm = 6;
...
...
mysql-test/suite/innodb/r/innodb-page_encryption_log_encryption.result
View file @
7047bef1
call mtr.add_suppression("KeyID 0 not found or with error. Check the key and the log file*");
call mtr.add_suppression("Disabling redo log encryption");
call mtr.add_suppression("KeyID 0 not found or with error. Check the key and the log*");
call mtr.add_suppression("Disabling redo log encryp*");
call mtr.add_suppression("InnoDB: Redo log crypto: Can't initialize to key version*");
SET GLOBAL innodb_file_format = `Barracuda`;
SET GLOBAL innodb_file_per_table = ON;
create table innodb_normal(c1 bigint not null, b char(200)) engine=innodb;
...
...
mysql-test/suite/innodb/t/innodb-page_compression_snappy.test
View file @
7047bef1
--
source
include
/
have_innodb
.
inc
--
source
include
/
have_innodb_snappy
.
inc
call
mtr
.
add_suppression
(
"
InnoDB: Warning:
Compression failed for space*"
);
call
mtr
.
add_suppression
(
"Compression failed for space*"
);
--
disable_query_log
let
$innodb_compression_algorithm_orig
=
`select @@innodb_compression_algorithm`
;
...
...
mysql-test/suite/innodb/t/innodb-page_encryption_log_encryption.test
View file @
7047bef1
...
...
@@ -6,8 +6,9 @@ let $innodb_file_format_orig = `SELECT @@innodb_file_format`;
let
$innodb_file_per_table_orig
=
`SELECT @@innodb_file_per_table`
;
--
enable_query_log
call
mtr
.
add_suppression
(
"KeyID 0 not found or with error. Check the key and the log file*"
);
call
mtr
.
add_suppression
(
"Disabling redo log encryption"
);
call
mtr
.
add_suppression
(
"KeyID 0 not found or with error. Check the key and the log*"
);
call
mtr
.
add_suppression
(
"Disabling redo log encryp*"
);
call
mtr
.
add_suppression
(
"InnoDB: Redo log crypto: Can't initialize to key version*"
);
SET
GLOBAL
innodb_file_format
=
`Barracuda`
;
SET
GLOBAL
innodb_file_per_table
=
ON
;
...
...
storage/innobase/fil/fil0crypt.cc
View file @
7047bef1
/*****************************************************************************
Copyright (C) 2013, 2015, Google Inc. All Rights Reserved.
Copyright (C) 2014, 2015, MariaDB Corporation. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
/**************************************************//**
@file fil0crypt.cc
Innodb file space encrypt/decrypt
Created Jonas Oreland Google
Modified Jan Lindström jan.lindstrom@mariadb.com
*******************************************************/
#include "fil0fil.h"
#include "srv0srv.h"
#include "srv0start.h"
...
...
@@ -11,6 +37,7 @@
#include "fsp0fsp.h"
#include "fil0pagecompress.h"
#include "fil0pageencryption.h"
#include "ha_prototypes.h" // IB_LOG_
#include <my_crypt.h>
...
...
@@ -368,11 +395,11 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
}
if
(
memcmp
(
page
+
offset
,
CRYPT_MAGIC
,
MAGIC_SZ
)
!=
0
)
{
fprintf
(
stderr
,
"
Warning: f
ound potentially bogus bytes on "
ib_logf
(
IB_LOG_LEVEL_WARN
,
"
F
ound potentially bogus bytes on "
"page 0 offset %lu for space %lu : "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]. "
"Assuming space is not encrypted!
\n
"
,
"Assuming space is not encrypted!
.
"
,
offset
,
space
,
page
[
offset
+
0
],
page
[
offset
+
1
],
...
...
@@ -387,10 +414,10 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
if
(
!
(
type
==
CRYPT_SCHEME_UNENCRYPTED
||
type
==
CRYPT_SCHEME_1
))
{
fprintf
(
stderr
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"Found non sensible crypt scheme: %lu for space %lu "
" offset: %lu bytes: "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
\n
"
,
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
.
"
,
type
,
space
,
offset
,
page
[
offset
+
0
+
MAGIC_SZ
],
page
[
offset
+
1
+
MAGIC_SZ
],
...
...
@@ -403,10 +430,10 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
ulint
iv_length
=
mach_read_from_1
(
page
+
offset
+
MAGIC_SZ
+
1
);
if
(
!
(
iv_length
==
CRYPT_SCHEME_1_IV_LEN
))
{
fprintf
(
stderr
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"Found non sensible iv length: %lu for space %lu "
" offset: %lu type: %lu bytes: "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
\n
"
,
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
.
"
,
iv_length
,
space
,
offset
,
type
,
page
[
offset
+
0
+
MAGIC_SZ
],
page
[
offset
+
1
+
MAGIC_SZ
],
...
...
@@ -1414,8 +1441,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
state
->
sum_waited_us
/
state
->
cnt_waited
;
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u - update estimated_max_iops from %u to %u
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u - update estimated_max_iops from %u to %u
.
"
,
state
->
thread_no
,
state
->
estimated_max_iops
,
1000000
/
avg_wait_time_us
);
...
...
@@ -1428,8 +1455,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
state
->
sum_waited_us
=
0
;
}
else
{
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u only waited %lu%% skip re-estimate
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u only waited %lu%% skip re-estimate
.
"
,
state
->
thread_no
,
(
100
*
state
->
cnt_waited
)
/
state
->
batch
);
#endif
...
...
@@ -1477,8 +1504,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
n_fil_crypt_iops_allocated
+=
extra
;
state
->
allocated_iops
+=
extra
;
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u increased iops from %u to %u
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u increased iops from %u to %u
.
"
,
state
->
thread_no
,
state
->
allocated_iops
-
extra
,
state
->
allocated_iops
);
...
...
@@ -2325,9 +2352,8 @@ fil_space_crypt_close_tablespace(
uint
now
=
time
(
0
);
if
(
now
>=
last
+
30
)
{
fprintf
(
stderr
,
"WARNING: "
"waited %u seconds to drop space: %lu
\n
"
,
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Waited %u seconds to drop space: %lu."
,
now
-
start
,
space
);
last
=
now
;
}
...
...
storage/innobase/fil/fil0pagecompress.cc
View file @
7047bef1
This diff is collapsed.
Click to expand it.
storage/innobase/log/log0crypt.cc
View file @
7047bef1
/*****************************************************************************
Copyright (C) 2013, 2015, Google Inc. All Rights Reserved.
Copyright (C) 2014, 2015, MariaDB Corporation. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
/**************************************************//**
@file log0crypt.cc
Innodb log encrypt/decrypt
Created 11/25/2013 Minli Zhu
Created 11/25/2013 Minli Zhu Google
Modified Jan Lindström jan.lindstrom@mariadb.com
*******************************************************/
#include "m_string.h"
#include "log0crypt.h"
...
...
@@ -13,6 +32,7 @@ Created 11/25/2013 Minli Zhu
#include "log0recv.h" // for recv_sys
#include "mysql/plugin_encryption_key_management.h" // for BAD_ENCRYPTION_KEY_VERSION
#include "ha_prototypes.h" // IB_LOG_
/* If true, enable redo log encryption. */
UNIV_INTERN
my_bool
srv_encrypt_log
=
FALSE
;
...
...
@@ -51,18 +71,18 @@ log_init_crypt_msg_and_nonce(void)
mach_write_to_1
(
redo_log_crypt_msg
,
redo_log_purpose_byte
);
if
(
my_random_bytes
(
redo_log_crypt_msg
+
1
,
PURPOSE_BYTE_LEN
)
!=
AES_OK
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: generate "
"%u-byte random number as crypto msg failed.
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: generate "
"%u-byte random number as crypto msg failed."
,
PURPOSE_BYTE_LEN
);
abort
();
}
if
(
my_random_bytes
(
aes_ctr_nonce
,
MY_AES_BLOCK_SIZE
)
!=
AES_OK
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: generate "
"%u-byte random number as AES_CTR nonce failed.
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: generate "
"%u-byte random number as AES_CTR nonce failed."
,
MY_AES_BLOCK_SIZE
);
abort
();
}
...
...
@@ -80,16 +100,17 @@ log_init_crypt_key(
{
if
(
crypt_ver
==
UNENCRYPTED_KEY_VER
)
{
fprintf
(
stderr
,
"
\n
InnoDB redo log crypto: unencrypted key ver.
\n\n
"
);
ib_logf
(
IB_LOG_LEVEL_INFO
,
"Redo log crypto: unencrypted key ver."
);
memset
(
key
,
0
,
MY_AES_BLOCK_SIZE
);
return
;
}
if
(
crypt_msg
[
PURPOSE_BYTE_OFFSET
]
!=
redo_log_purpose_byte
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: msg type mismatched. "
"Expected: %x; Actual: %x
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: msg type mismatched. "
"Expected: %x; Actual: %x
.
"
,
redo_log_purpose_byte
,
crypt_msg
[
PURPOSE_BYTE_OFFSET
]);
abort
();
}
...
...
@@ -97,9 +118,9 @@ log_init_crypt_key(
byte
mysqld_key
[
MY_AES_BLOCK_SIZE
]
=
{
0
};
if
(
get_encryption_key
(
crypt_ver
,
mysqld_key
,
MY_AES_BLOCK_SIZE
))
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: getting mysqld crypto key "
"from key version failed.
\n
"
);
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: getting mysqld crypto key "
"from key version failed."
);
abort
();
}
...
...
@@ -113,9 +134,9 @@ log_init_crypt_key(
if
(
rc
!=
AES_OK
||
dst_len
!=
MY_AES_BLOCK_SIZE
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: getting redo log crypto key "
"failed.
\n
"
);
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: getting redo log crypto key "
"failed."
);
abort
();
}
}
...
...
@@ -247,9 +268,11 @@ log_crypt_set_ver_and_key(
vkey
==
(
unsigned
int
)
CRYPT_KEY_UNKNOWN
)
{
encrypted
=
false
;
fprintf
(
stderr
,
"
\n
InnoDB redo log crypto: Can't initialize to key version %du
\n
"
,
key_ver
);
fprintf
(
stderr
,
"InnoDB: Warning: Disabling redo log encryption
\n
"
);
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Redo log crypto: Can't initialize to key version %du."
,
vkey
);
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Disabling redo log encryption."
);
srv_encrypt_log
=
FALSE
;
}
else
{
key_ver
=
vkey
;
...
...
storage/xtradb/fil/fil0crypt.cc
View file @
7047bef1
/*****************************************************************************
Copyright (C) 2013, 2015, Google Inc. All Rights Reserved.
Copyright (C) 2014, 2015, MariaDB Corporation. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
/**************************************************//**
@file fil0crypt.cc
Innodb file space encrypt/decrypt
Created Jonas Oreland Google
Modified Jan Lindström jan.lindstrom@mariadb.com
*******************************************************/
#include "fil0fil.h"
#include "srv0srv.h"
#include "srv0start.h"
...
...
@@ -11,6 +37,7 @@
#include "fsp0fsp.h"
#include "fil0pagecompress.h"
#include "fil0pageencryption.h"
#include "ha_prototypes.h" // IB_LOG_
#include <my_crypt.h>
...
...
@@ -368,11 +395,11 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
}
if
(
memcmp
(
page
+
offset
,
CRYPT_MAGIC
,
MAGIC_SZ
)
!=
0
)
{
fprintf
(
stderr
,
"
Warning: f
ound potentially bogus bytes on "
ib_logf
(
IB_LOG_LEVEL_WARN
,
"
F
ound potentially bogus bytes on "
"page 0 offset %lu for space %lu : "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]. "
"Assuming space is not encrypted!
\n
"
,
"Assuming space is not encrypted!
.
"
,
offset
,
space
,
page
[
offset
+
0
],
page
[
offset
+
1
],
...
...
@@ -387,10 +414,10 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
if
(
!
(
type
==
CRYPT_SCHEME_UNENCRYPTED
||
type
==
CRYPT_SCHEME_1
))
{
fprintf
(
stderr
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"Found non sensible crypt scheme: %lu for space %lu "
" offset: %lu bytes: "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
\n
"
,
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
.
"
,
type
,
space
,
offset
,
page
[
offset
+
0
+
MAGIC_SZ
],
page
[
offset
+
1
+
MAGIC_SZ
],
...
...
@@ -403,10 +430,10 @@ fil_space_read_crypt_data(ulint space, const byte* page, ulint offset)
ulint
iv_length
=
mach_read_from_1
(
page
+
offset
+
MAGIC_SZ
+
1
);
if
(
!
(
iv_length
==
CRYPT_SCHEME_1_IV_LEN
))
{
fprintf
(
stderr
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"Found non sensible iv length: %lu for space %lu "
" offset: %lu type: %lu bytes: "
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
\n
"
,
"[ %.2x %.2x %.2x %.2x %.2x %.2x ]
.
"
,
iv_length
,
space
,
offset
,
type
,
page
[
offset
+
0
+
MAGIC_SZ
],
page
[
offset
+
1
+
MAGIC_SZ
],
...
...
@@ -1414,8 +1441,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
state
->
sum_waited_us
/
state
->
cnt_waited
;
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u - update estimated_max_iops from %u to %u
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u - update estimated_max_iops from %u to %u
.
"
,
state
->
thread_no
,
state
->
estimated_max_iops
,
1000000
/
avg_wait_time_us
);
...
...
@@ -1428,8 +1455,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
state
->
sum_waited_us
=
0
;
}
else
{
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u only waited %lu%% skip re-estimate
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u only waited %lu%% skip re-estimate
.
"
,
state
->
thread_no
,
(
100
*
state
->
cnt_waited
)
/
state
->
batch
);
#endif
...
...
@@ -1477,8 +1504,8 @@ fil_crypt_realloc_iops(rotate_thread_t *state)
n_fil_crypt_iops_allocated
+=
extra
;
state
->
allocated_iops
+=
extra
;
#if DEBUG_KEYROTATION_THROTTLING
fprintf
(
stderr
,
"thr_no: %u increased iops from %u to %u
\n
"
,
ib_logf
(
IB_LOG_LEVEL_INFO
,
"thr_no: %u increased iops from %u to %u
.
"
,
state
->
thread_no
,
state
->
allocated_iops
-
extra
,
state
->
allocated_iops
);
...
...
@@ -2325,9 +2352,8 @@ fil_space_crypt_close_tablespace(
uint
now
=
time
(
0
);
if
(
now
>=
last
+
30
)
{
fprintf
(
stderr
,
"WARNING: "
"waited %u seconds to drop space: %lu
\n
"
,
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Waited %u seconds to drop space: %lu."
,
now
-
start
,
space
);
last
=
now
;
}
...
...
storage/xtradb/fil/fil0pagecompress.cc
View file @
7047bef1
This diff is collapsed.
Click to expand it.
storage/xtradb/log/log0crypt.cc
View file @
7047bef1
/*****************************************************************************
Copyright (C) 2013, 2015, Google Inc. All Rights Reserved.
Copyright (C) 2014, 2015, MariaDB Corporation. All Rights Reserved.
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; version 2 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*****************************************************************************/
/**************************************************//**
@file log0crypt.cc
Innodb log encrypt/decrypt
Created 11/25/2013 Minli Zhu
Created 11/25/2013 Minli Zhu Google
Modified Jan Lindström jan.lindstrom@mariadb.com
*******************************************************/
#include "m_string.h"
#include "log0crypt.h"
...
...
@@ -14,6 +33,7 @@ Created 11/25/2013 Minli Zhu
#include "log0recv.h" // for recv_sys
#include "mysql/plugin_encryption_key_management.h" // for BAD_ENCRYPTION_KEY_VERSION
#include "ha_prototypes.h" // IB_LOG_
/* If true, enable redo log encryption. */
UNIV_INTERN
my_bool
srv_encrypt_log
=
FALSE
;
...
...
@@ -52,18 +72,18 @@ log_init_crypt_msg_and_nonce(void)
mach_write_to_1
(
redo_log_crypt_msg
,
redo_log_purpose_byte
);
if
(
my_random_bytes
(
redo_log_crypt_msg
+
1
,
PURPOSE_BYTE_LEN
)
!=
AES_OK
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: generate "
"%u-byte random number as crypto msg failed.
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: generate "
"%u-byte random number as crypto msg failed."
,
PURPOSE_BYTE_LEN
);
abort
();
}
if
(
my_random_bytes
(
aes_ctr_nonce
,
MY_AES_BLOCK_SIZE
)
!=
AES_OK
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: generate "
"%u-byte random number as AES_CTR nonce failed.
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: generate "
"%u-byte random number as AES_CTR nonce failed."
,
MY_AES_BLOCK_SIZE
);
abort
();
}
...
...
@@ -81,16 +101,17 @@ log_init_crypt_key(
{
if
(
crypt_ver
==
UNENCRYPTED_KEY_VER
)
{
fprintf
(
stderr
,
"
\n
InnoDB redo log crypto: unencrypted key ver.
\n\n
"
);
ib_logf
(
IB_LOG_LEVEL_INFO
,
"Redo log crypto: unencrypted key ver."
);
memset
(
key
,
0
,
MY_AES_BLOCK_SIZE
);
return
;
}
if
(
crypt_msg
[
PURPOSE_BYTE_OFFSET
]
!=
redo_log_purpose_byte
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: msg type mismatched. "
"Expected: %x; Actual: %x
\n
"
,
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: msg type mismatched. "
"Expected: %x; Actual: %x
.
"
,
redo_log_purpose_byte
,
crypt_msg
[
PURPOSE_BYTE_OFFSET
]);
abort
();
}
...
...
@@ -98,9 +119,9 @@ log_init_crypt_key(
byte
mysqld_key
[
MY_AES_BLOCK_SIZE
]
=
{
0
};
if
(
get_encryption_key
(
crypt_ver
,
mysqld_key
,
MY_AES_BLOCK_SIZE
))
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: getting mysqld crypto key "
"from key version failed.
\n
"
);
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: getting mysqld crypto key "
"from key version failed."
);
abort
();
}
...
...
@@ -114,9 +135,9 @@ log_init_crypt_key(
if
(
rc
!=
AES_OK
||
dst_len
!=
MY_AES_BLOCK_SIZE
)
{
fprintf
(
stderr
,
"
\n
InnoDB r
edo log crypto: getting redo log crypto key "
"failed.
\n
"
);
ib_logf
(
IB_LOG_LEVEL_ERROR
,
"
R
edo log crypto: getting redo log crypto key "
"failed."
);
abort
();
}
}
...
...
@@ -248,9 +269,11 @@ log_crypt_set_ver_and_key(
vkey
==
(
unsigned
int
)
CRYPT_KEY_UNKNOWN
)
{
encrypted
=
false
;
fprintf
(
stderr
,
"
\n
InnoDB redo log crypto: Can't initialize to key version %du
\n
"
,
key_ver
);
fprintf
(
stderr
,
"InnoDB: Warning: Disabling redo log encryption
\n
"
);
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Redo log crypto: Can't initialize to key version %du."
,
vkey
);
ib_logf
(
IB_LOG_LEVEL_WARN
,
"Disabling redo log encryption."
);
srv_encrypt_log
=
FALSE
;
}
else
{
key_ver
=
vkey
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment