Store the key message from access/creation.
* Allow creating a Keyring with a key message. * Store the key message when accessing. * Add a few missing consts.
This commit is contained in:
committed by
Ryan Leavengood
parent
94f897deea
commit
1dd765c92c
@@ -377,7 +377,7 @@ KeyStoreServer::_AddKeyring(const BString& name, const BMessage& keyMessage)
|
|||||||
if (_FindKeyring(name) != NULL)
|
if (_FindKeyring(name) != NULL)
|
||||||
return B_NAME_IN_USE;
|
return B_NAME_IN_USE;
|
||||||
|
|
||||||
Keyring* keyring = new(std::nothrow) Keyring(name, BMessage());
|
Keyring* keyring = new(std::nothrow) Keyring(name, BMessage(), &keyMessage);
|
||||||
if (keyring == NULL)
|
if (keyring == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
|
|||||||
@@ -7,11 +7,13 @@
|
|||||||
#include "Keyring.h"
|
#include "Keyring.h"
|
||||||
|
|
||||||
|
|
||||||
Keyring::Keyring(const char* name, const BMessage& data)
|
Keyring::Keyring(const char* name, const BMessage& data,
|
||||||
|
const BMessage* keyMessage)
|
||||||
:
|
:
|
||||||
fName(name),
|
fName(name),
|
||||||
fData(data),
|
fData(data),
|
||||||
fAccessible(false)
|
fKeyMessage(*keyMessage),
|
||||||
|
fAccessible(keyMessage != NULL)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -24,6 +26,7 @@ Keyring::~Keyring()
|
|||||||
status_t
|
status_t
|
||||||
Keyring::Access(const BMessage& keyMessage)
|
Keyring::Access(const BMessage& keyMessage)
|
||||||
{
|
{
|
||||||
|
fKeyMessage = keyMessage;
|
||||||
fAccessible = true;
|
fAccessible = true;
|
||||||
return B_OK;
|
return B_OK;
|
||||||
}
|
}
|
||||||
@@ -32,20 +35,28 @@ Keyring::Access(const BMessage& keyMessage)
|
|||||||
void
|
void
|
||||||
Keyring::RevokeAccess()
|
Keyring::RevokeAccess()
|
||||||
{
|
{
|
||||||
|
fKeyMessage.MakeEmpty();
|
||||||
fAccessible = false;
|
fAccessible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
Keyring::IsAccessible()
|
Keyring::IsAccessible() const
|
||||||
{
|
{
|
||||||
return fAccessible;
|
return fAccessible;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const BMessage&
|
||||||
|
Keyring::KeyMessage() const
|
||||||
|
{
|
||||||
|
return fKeyMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
Keyring::FindKey(const BString& identifier, const BString& secondaryIdentifier,
|
Keyring::FindKey(const BString& identifier, const BString& secondaryIdentifier,
|
||||||
bool secondaryIdentifierOptional, BMessage* _foundKeyMessage)
|
bool secondaryIdentifierOptional, BMessage* _foundKeyMessage) const
|
||||||
{
|
{
|
||||||
if (!fAccessible)
|
if (!fAccessible)
|
||||||
return B_NOT_ALLOWED;
|
return B_NOT_ALLOWED;
|
||||||
@@ -91,7 +102,7 @@ Keyring::FindKey(const BString& identifier, const BString& secondaryIdentifier,
|
|||||||
|
|
||||||
status_t
|
status_t
|
||||||
Keyring::FindKey(BKeyType type, BKeyPurpose purpose, uint32 index,
|
Keyring::FindKey(BKeyType type, BKeyPurpose purpose, uint32 index,
|
||||||
BMessage& _foundKeyMessage)
|
BMessage& _foundKeyMessage) const
|
||||||
{
|
{
|
||||||
if (!fAccessible)
|
if (!fAccessible)
|
||||||
return B_NOT_ALLOWED;
|
return B_NOT_ALLOWED;
|
||||||
|
|||||||
@@ -13,7 +13,8 @@
|
|||||||
class Keyring {
|
class Keyring {
|
||||||
public:
|
public:
|
||||||
Keyring(const char* name,
|
Keyring(const char* name,
|
||||||
const BMessage& data);
|
const BMessage& data,
|
||||||
|
const BMessage* keyMessage = NULL);
|
||||||
~Keyring();
|
~Keyring();
|
||||||
|
|
||||||
const char* Name() const { return fName; }
|
const char* Name() const { return fName; }
|
||||||
@@ -21,15 +22,16 @@ public:
|
|||||||
|
|
||||||
status_t Access(const BMessage& keyMessage);
|
status_t Access(const BMessage& keyMessage);
|
||||||
void RevokeAccess();
|
void RevokeAccess();
|
||||||
bool IsAccessible();
|
bool IsAccessible() const;
|
||||||
|
const BMessage& KeyMessage() const;
|
||||||
|
|
||||||
status_t FindKey(const BString& identifier,
|
status_t FindKey(const BString& identifier,
|
||||||
const BString& secondaryIdentifier,
|
const BString& secondaryIdentifier,
|
||||||
bool secondaryIdentifierOptional,
|
bool secondaryIdentifierOptional,
|
||||||
BMessage* _foundKeyMessage);
|
BMessage* _foundKeyMessage) const;
|
||||||
status_t FindKey(BKeyType type, BKeyPurpose purpose,
|
status_t FindKey(BKeyType type, BKeyPurpose purpose,
|
||||||
uint32 index,
|
uint32 index,
|
||||||
BMessage& _foundKeyMessage);
|
BMessage& _foundKeyMessage) const;
|
||||||
|
|
||||||
status_t AddKey(const BString& identifier,
|
status_t AddKey(const BString& identifier,
|
||||||
const BString& secondaryIdentifier,
|
const BString& secondaryIdentifier,
|
||||||
@@ -45,6 +47,7 @@ static int Compare(const BString* name,
|
|||||||
private:
|
private:
|
||||||
BString fName;
|
BString fName;
|
||||||
BMessage fData;
|
BMessage fData;
|
||||||
|
BMessage fKeyMessage;
|
||||||
bool fAccessible;
|
bool fAccessible;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user