blob: 2c6c1aca3bb14e52f56471fe716ee45c94b0e7ef (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
// Copyright (c) 2010 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/crypto/symmetric_key.h"
#include <nss.h>
#include <pk11pub.h>
#include "base/logging.h"
namespace base {
bool SymmetricKey::GetRawKey(std::string* raw_key) {
SECStatus rv = PK11_ExtractKeyValue(key_.get());
if (SECSuccess != rv)
return false;
SECItem* key_item = PK11_GetKeyData(key_.get());
if (!key_item)
return false;
raw_key->assign(reinterpret_cast<char*>(key_item->data), key_item->len);
return true;
}
} // namespace base
|