]>
git.proxmox.com Git - ceph.git/blob - ceph/src/test/testkeys.cc
1 #include "auth/cephx/CephxKeyServer.h"
2 #include "common/ceph_argparse.h"
3 #include "global/global_init.h"
4 #include "common/config.h"
5 #include "common/debug.h"
7 #define dout_context g_ceph_context
11 int main(int argc
, const char **argv
)
13 vector
<const char*> args
;
14 argv_to_vec(argc
, argv
, args
);
17 auto cct
= global_init(NULL
, args
, CEPH_ENTITY_TYPE_CLIENT
,
18 CODE_ENVIRONMENT_UTILITY
, 0);
19 common_init_finish(g_ceph_context
);
21 KeyServer
server(g_ceph_context
, &extra
);
23 generic_dout(0) << "server created" << dendl
;
28 char aes_key
[AES_KEY_LEN
];
29 memset(aes_key
, 0x77, sizeof(aes_key
));
30 bufferptr
keybuf(aes_key
, sizeof(aes_key
));
31 CryptoKey
key(CEPH_CRYPTO_AES
, ceph_clock_now(), keybuf
);
33 const char *msg
="hello! this is a message\n";
36 bufferptr
ptr(msg
, strlen(msg
));
39 enc_in
.append(msg
, strlen(msg
));
42 if (key
.encrypt(enc_in
, enc_out
) < 0) {
43 derr(0) << "couldn't encode!" << dendl
;
47 const char *enc_buf
= enc_out
.c_str();
48 for (unsigned i
=0; i
<enc_out
.length(); i
++) {
49 std::cout
<< hex
<< (int)(unsigned char)enc_buf
[i
] << dec
<< " ";
51 std::cout
<< std::endl
;
54 bufferlist dec_in
, dec_out
;
58 if (key
.decrypt(dec_in
, dec_out
) < 0) {
59 derr(0) << "couldn't decode!" << dendl
;
62 dout(0) << "decoded len: " << dec_out
.length() << dendl
;
63 dout(0) << "decoded msg: " << dec_out
.c_str() << dendl
;