int encrypt(CephContext *cct, const ceph::buffer::list& in,
ceph::buffer::list& out,
std::string *error) const {
- ceph_assert(ckh); // Bad key?
+ ceph_assert(!empty()); // Bad key?
return ckh->encrypt(cct, in, out, error);
}
int decrypt(CephContext *cct, const ceph::buffer::list& in,
ceph::buffer::list& out,
std::string *error) const {
- ceph_assert(ckh); // Bad key?
+ ceph_assert(!empty()); // Bad key?
return ckh->decrypt(cct, in, out, error);
}
std::size_t encrypt(CephContext *cct, const in_slice_t& in,
const out_slice_t& out) {
- ceph_assert(ckh);
+ ceph_assert(!empty()); // Bad key?
return ckh->encrypt(cct, in, out);
}
std::size_t decrypt(CephContext *cct, const in_slice_t& in,
const out_slice_t& out) {
- ceph_assert(ckh);
+ ceph_assert(!empty()); // Bad key?
return ckh->encrypt(cct, in, out);
}
sha256_digest_t hmac_sha256(CephContext*, const ceph::buffer::list& in) const {
- ceph_assert(ckh);
+ ceph_assert(!empty()); // Bad key?
return ckh->hmac_sha256(in);
}
ldout(cct, 10) << "build_service_ticket service " << info << dendl;
blob.secret_id = info.secret_id;
std::string error;
- if (!info.service_secret.get_secret().length())
+ if (info.service_secret.empty())
error = "invalid key"; // Bad key?
else
encode_encrypt_enc_bl(cct, ticket_info, info.service_secret, blob.blob, error);
ldout(cct, 30) << __func__ << ": got secret " << service_secret << dendl;
std::string error;
- if (!service_secret.get_secret().length())
+ if (service_secret.empty())
error = "invalid key"; // Bad key?
else
decode_decrypt_enc_bl(cct, ticket_info, service_secret, ticket.blob, error);
// CephXAuthorize
CephXAuthorize auth_msg;
- if (decode_decrypt(cct, auth_msg, ticket_info.session_key, indata, error)) {
- ldout(cct, 0) << "verify_authorizercould not decrypt authorize request with error: "
- << error << dendl;
+ if (ticket_info.session_key.empty()) {
+ error = "session key is invalid";
+ } else if (!decode_decrypt(cct, auth_msg, ticket_info.session_key, indata, error)) {
+ error = "";
+ }
+ if (!error.empty()) {
+ ldout(cct, 0) << __func__ << ": could not decrypt authorize request: " << error << dendl;
return false;
}