Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
9a045959
Commit
9a045959
authored
Apr 09, 2013
by
Mukund Sivaraman
Browse files
[2387] Move text about missing key data to the constructor API doc
parent
82fc64bf
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/lib/dns/rdata/generic/dnskey_48.cc
View file @
9a045959
...
...
@@ -63,7 +63,10 @@ struct DNSKEYImpl {
/// The Protocol and Algorithm fields must be within their valid
/// ranges. The Public Key field must be present and must contain a
/// Base64 encoding of the public key. Whitespace is allowed within the
/// Base64 text.
/// Base64 text. It is okay for the key data to be missing. BIND 9 seems
/// to accept such cases. What we should do could be debatable, but
/// since this field is algorithm dependent and our implementation
/// doesn't reject unknown algorithms, we are lenient here.
///
/// \throw InvalidRdataText if any fields are out of their valid range,
/// or are incorrect.
...
...
@@ -97,6 +100,15 @@ DNSKEY::DNSKEY(const std::string& dnskey_str) :
impl_
=
impl_ptr
.
release
();
}
/// \brief Constructor from InputBuffer.
///
/// The passed buffer must contain a valid DNSKEY RDATA.
///
/// The Protocol and Algorithm fields are not checked for unknown
/// values. It is okay for the key data to be missing. BIND 9 seems to
/// accept such cases. What we should do could be debatable, but since
/// this field is algorithm dependent and our implementation doesn't
/// reject unknown algorithms, we are lenient here.
DNSKEY
::
DNSKEY
(
InputBuffer
&
buffer
,
size_t
rdata_len
)
:
impl_
(
NULL
)
{
...
...
@@ -111,10 +123,8 @@ DNSKEY::DNSKEY(InputBuffer& buffer, size_t rdata_len) :
rdata_len
-=
4
;
vector
<
uint8_t
>
keydata
;
// If key data is missing, it's OK. BIND 9 seems to accept such
// cases. What we should do could be debatable, but since this field
// is algorithm dependent and our implementation doesn't reject
// unknown algorithms, we are lenient here.
// If key data is missing, it's OK. See the API documentation of the
// constructor.
if
(
rdata_len
>
0
)
{
keydata
.
resize
(
rdata_len
);
buffer
.
readData
(
&
keydata
[
0
],
rdata_len
);
...
...
@@ -187,10 +197,8 @@ DNSKEY::constructFromLexer(MasterLexer& lexer) {
lexer
.
ungetToken
();
vector
<
uint8_t
>
keydata
;
// If key data is missing, it's OK. BIND 9 seems to accept such
// cases. What we should do could be debatable, but since this field
// is algorithm dependent and our implementation doesn't reject
// unknown algorithms, we are lenient here.
// If key data is missing, it's OK. See the API documentation of the
// constructor.
if
(
keydata_str
.
size
()
>
0
)
{
decodeBase64
(
keydata_str
,
keydata
);
}
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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