Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
P
Practical-Cryptdb
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Zhaozhen
Practical-Cryptdb
Commits
9c993074
Commit
9c993074
authored
Jan 05, 2018
by
yiwenshao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
escape demo added
parent
d92defce
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
163 additions
and
12 deletions
+163
-12
.mydumper.c.swp
packages/tls/mydumper/.mydumper.c.swp
+0
-0
Makefile
packages/tls/mysql_wrapper/Makefile
+6
-5
backFieldsToFiles
packages/tls/mysql_wrapper/backFieldsToFiles
+0
-0
client
packages/tls/mysql_wrapper/client
+0
-0
client.cc
packages/tls/mysql_wrapper/client.cc
+69
-0
escape
packages/tls/mysql_wrapper/escape
+0
-0
escape.cc
packages/tls/mysql_wrapper/escape.cc
+15
-0
main
packages/tls/mysql_wrapper/main
+0
-0
main.cc
packages/tls/mysql_wrapper/main.cc
+0
-3
MyConnect.cc
packages/tls/mysql_wrapper/mysqllib/MyConnect.cc
+14
-2
MyConnect.h
packages/tls/mysql_wrapper/mysqllib/MyConnect.h
+3
-2
Makefile
packages/tls/mysql_wrapper/testEscape/Makefile
+2
-0
demo
packages/tls/mysql_wrapper/testEscape/demo
+0
-0
demo.c
packages/tls/mysql_wrapper/testEscape/demo.c
+54
-0
No files found.
packages/tls/mydumper/.mydumper.c.swp
0 → 100644
View file @
9c993074
File added
packages/tls/mysql_wrapper/Makefile
View file @
9c993074
...
...
@@ -2,26 +2,27 @@ SRCFILES=$(wildcard mysqllib/*.cc)
OBJFILES
=
$
(
patsubst mysqllib/%.cc,obj/%.o,
$(SRCFILES)
)
CXXFLAGS
=
-I
/usr/include/mysql
-fabi-version
=
2
-fno-omit-frame-pointer
-std
=
c++11
LDFLAGS
=
-L
/usr/lib/x86_64-linux-gnu
-lmysqlclient
-lpthread
-lz
-lm
-lrt
-ldl
CXX
=
g++
.PHONY
:
all
executables
:=
main backFieldsToFiles
executables
:=
main backFieldsToFiles
client escape
all
:
$(executables)
createInsert
:
obj/createInsert.o $(OBJFILES)
$(CXX)
-o
$@
$^
$(LDFLAGS)
main
:
obj/main.o $(OBJFILES)
$(CXX)
-o
$@
$^
$(LDFLAGS)
backFieldsToFiles
:
obj/backFieldsToFiles.o $(OBJFILES)
$(CXX)
-o
$@
$^
$(LDFLAGS)
analysis
:
obj/analysis.o $(OBJFILES)
client
:
obj/client.o $(OBJFILES)
$(CXX)
-o
$@
$^
$(LDFLAGS)
escape
:
obj/escape.o $(OBJFILES)
$(CXX)
-o
$@
$^
$(LDFLAGS)
.PHONY
:
clean
...
...
packages/tls/mysql_wrapper/backFieldsToFiles
View file @
9c993074
No preview for this file type
packages/tls/mysql_wrapper/client
0 → 100755
View file @
9c993074
File added
packages/tls/mysql_wrapper/client.cc
0 → 100644
View file @
9c993074
#include <iostream>
#include "mysqllib/utilities.h"
#include "mysqllib/MyConnect.h"
#include <vector>
#include <string>
using
namespace
std
;
extern
Connect
*
con
;
string
createSelect
(
string
database
,
string
table
,
bool
isQuote
=
true
){
auto
dbresult
=
con
->
execute
(
string
(
"SELECT * FROM `"
)
+
database
+
"`.`"
+
string
(
table
)
+
"` LIMIT 1;"
);
DBResult
*
result
=
dbresult
.
get
();
vector
<
vector
<
string
>>
rows
=
result
->
getRows
();
vector
<
enum_field_types
>
types
=
result
->
getTypes
();
vector
<
string
>
fields
=
result
->
getFields
();
string
head
=
"SELECT "
;
for
(
int
i
=
0
;
i
<
types
.
size
();
i
++
){
if
(
IS_NUM
(
types
[
i
])){
head
+=
fields
[
i
]
+
","
;
}
else
{
if
(
isQuote
)
head
+=
string
(
"QUOTE("
)
+
fields
[
i
]
+
"),"
;
else
head
+=
string
(
"HEX("
)
+
fields
[
i
]
+
"),"
;
}
}
head
[
head
.
size
()
-
1
]
=
' '
;
head
+=
"FROM `"
+
database
+
"`.`"
+
table
+
"`"
;
//cout<<head<<endl;
return
head
;
}
vector
<
string
>
getTables
(
string
db
){
string
query
=
string
(
"SHOW TABLES IN "
)
+
db
;
auto
dbresult
=
con
->
execute
(
query
);
DBResult
*
result
=
dbresult
.
get
();
vector
<
vector
<
string
>>
rows
=
result
->
getRows
();
vector
<
enum_field_types
>
types
=
result
->
getTypes
();
vector
<
string
>
fieldNames
=
result
->
getFields
();
vector
<
string
>
res
;
for
(
auto
item
:
rows
){
assert
(
item
.
size
()
==
1
);
res
.
push_back
(
item
[
0
]);
}
return
res
;
}
int
main
(
int
argc
,
char
**
argv
){
string
query
;
getline
(
cin
,
query
);
while
(
query
!=
string
(
"quit"
)){
auto
dbresult
=
con
->
execute
(
query
);
DBResult
*
result
=
dbresult
.
get
();
if
(
result
!=
NULL
){
vector
<
vector
<
string
>>
rows
=
result
->
getRows
();
vector
<
enum_field_types
>
types
=
result
->
getTypes
();
vector
<
string
>
fieldNames
=
result
->
getFields
();
result
->
printRows
();
}
getline
(
cin
,
query
);
}
return
0
;
}
packages/tls/mysql_wrapper/escape
0 → 100755
View file @
9c993074
File added
packages/tls/mysql_wrapper/escape.cc
0 → 100644
View file @
9c993074
#include <iostream>
#include "mysqllib/utilities.h"
#include "mysqllib/MyConnect.h"
#include <vector>
#include <string>
using
namespace
std
;
int
main
(
int
argc
,
char
**
argv
){
return
0
;
}
packages/tls/mysql_wrapper/main
View file @
9c993074
No preview for this file type
packages/tls/mysql_wrapper/main.cc
View file @
9c993074
...
...
@@ -86,9 +86,6 @@ vector<string> getTables(string db){
}
int
main
(
int
argc
,
char
**
argv
){
if
(
argc
!=
4
){
cout
<<
"numOfpipe, db, table"
<<
endl
;
...
...
packages/tls/mysql_wrapper/mysqllib/MyConnect.cc
View file @
9c993074
...
...
@@ -92,23 +92,28 @@ Connect::execute(const std::string &query){
vector
<
vector
<
string
>>
rows
;
vector
<
string
>
fields
;
vector
<
enum_field_types
>
types
;
vector
<
vector
<
int
>>
lengths
;
if
(
num_fields
==
0
){
return
std
::
make_shared
<
DBResult
>
(
rows
,
fields
,
types
);
return
std
::
make_shared
<
DBResult
>
(
rows
,
fields
,
types
,
lengths
);
}
MYSQL_ROW
row
;
while
((
row
=
mysql_fetch_row
(
result
)))
{
unsigned
long
*
fieldLen
=
mysql_fetch_lengths
(
result
);
vector
<
string
>
curRow
;
vector
<
int
>
curLength
;
for
(
int
i
=
0
;
i
<
num_fields
;
i
++
)
{
if
(
row
[
i
]
==
NULL
){
curRow
.
push_back
(
string
(
"NULL"
));
curLength
.
push_back
(
0
);
}
else
{
curRow
.
push_back
(
string
(
row
[
i
],
fieldLen
[
i
]));
curLength
.
push_back
(
fieldLen
[
i
]);
}
}
rows
.
push_back
(
curRow
);
lengths
.
push_back
(
curLength
);
}
MYSQL_FIELD
*
field
;
...
...
@@ -122,7 +127,7 @@ Connect::execute(const std::string &query){
}
}
return
std
::
make_shared
<
DBResult
>
(
rows
,
fields
,
types
);
return
std
::
make_shared
<
DBResult
>
(
rows
,
fields
,
types
,
lengths
);
}
Connect
::~
Connect
()
{
...
...
@@ -137,6 +142,13 @@ DBResult::printRows(){
}
cout
<<
endl
;
}
for
(
auto
oneRow
:
lengths
){
for
(
auto
len
:
oneRow
){
cout
<<
len
<<
"
\t\t
"
;
}
cout
<<
endl
;
}
}
void
DBResult
::
printRowsF2
(){
...
...
packages/tls/mysql_wrapper/mysqllib/MyConnect.h
View file @
9c993074
...
...
@@ -49,8 +49,8 @@ class DBResult {
public
:
DBResult
()
:
affected_rows
(
-
1
),
insert_id
(
-
1
){}
DBResult
(
vector
<
vector
<
string
>>
inRows
,
vector
<
string
>
inFields
,
vector
<
enum_field_types
>
inTypes
)
:
affected_rows
(
-
1
),
insert_id
(
-
1
),
rows
(
inRows
),
fields
(
inFields
),
types
(
inTypes
){
vector
<
enum_field_types
>
inTypes
,
vector
<
vector
<
int
>>
inLengths
)
:
affected_rows
(
-
1
),
insert_id
(
-
1
),
rows
(
inRows
),
fields
(
inFields
),
types
(
inTypes
)
,
lengths
(
inLengths
)
{
for
(
auto
item
:
types
){
typesString
.
push_back
(
gtm
[
item
]);
}
...
...
@@ -67,6 +67,7 @@ class DBResult {
const
uint64_t
affected_rows
;
const
uint64_t
insert_id
;
const
vector
<
vector
<
string
>>
rows
;
const
vector
<
vector
<
int
>>
lengths
;
const
vector
<
string
>
fields
;
const
vector
<
enum_field_types
>
types
;
vector
<
string
>
typesString
;
...
...
packages/tls/mysql_wrapper/testEscape/Makefile
0 → 100644
View file @
9c993074
demo
:
demo.c
gcc
-o
demo demo.c
`
mysql_config
--cflags
--libs
`
packages/tls/mysql_wrapper/testEscape/demo
0 → 100755
View file @
9c993074
File added
packages/tls/mysql_wrapper/testEscape/demo.c
0 → 100644
View file @
9c993074
#include <my_global.h>
#include <mysql.h>
void
get_version
(){
printf
(
"MySQL client version: %s
\n
"
,
mysql_get_client_info
());
}
void
finish_with_error
(
MYSQL
*
con
){
fprintf
(
stderr
,
"%s
\n
"
,
mysql_error
(
con
));
return
;
}
MYSQL_RES
*
queryResults
(
MYSQL
*
con
,
char
*
query
){
if
(
mysql_query
(
con
,
query
))
{
finish_with_error
(
con
);
}
MYSQL_RES
*
result
=
mysql_store_result
(
con
);
if
(
result
==
NULL
)
{
printf
(
"query no results"
);
}
return
result
;
}
MYSQL
*
getConnection
(
char
*
ip
,
char
*
user
,
char
*
password
,
char
*
db
){
MYSQL
*
con
=
mysql_init
(
NULL
);
if
(
con
==
NULL
){
fprintf
(
stderr
,
"mysql_init() failed
\n
"
);
exit
(
1
);
}
if
(
mysql_real_connect
(
con
,
ip
,
user
,
password
,
db
,
0
,
NULL
,
0
)
==
NULL
)
{
finish_with_error
(
con
);
}
return
con
;
}
void
*
showResults
(
MYSQL
*
con
,
MYSQL_RES
*
result
){
int
num_fields
=
mysql_num_fields
(
result
);
MYSQL_ROW
row
;
char
*
esp
=
(
char
*
)
malloc
(
sizeof
(
char
)
*
27
);
while
((
row
=
mysql_fetch_row
(
result
)))
{
//print escaped string here
unsigned
long
*
fieldLen
=
mysql_fetch_lengths
(
result
);
for
(
int
i
=
0
;
i
<
num_fields
;
i
++
)
{
mysql_real_escape_string
(
con
,
esp
,
row
[
i
],
fieldLen
[
i
]);
printf
(
"%s "
,
esp
?
esp
:
"NULL"
);
}
printf
(
"
\n
"
);
}
}
int
main
(
int
argc
,
char
**
argv
){
get_version
();
MYSQL
*
con
=
getConnection
(
"localhost"
,
"root"
,
"letmein"
,
"tdb"
);
MYSQL_RES
*
result
=
queryResults
(
con
,
"select * from student"
);
showResults
(
con
,
result
);
mysql_free_result
(
result
);
mysql_close
(
con
);
return
0
;
}
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