本文整理汇总了C#中net.named_data.jndn.Interest.getKeyLocator方法的典型用法代码示例。如果您正苦于以下问题:C# Interest.getKeyLocator方法的具体用法?C# Interest.getKeyLocator怎么用?C# Interest.getKeyLocator使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类net.named_data.jndn.Interest
的用法示例。
在下文中一共展示了Interest.getKeyLocator方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
static void Main(string[] args)
{
var interest = new Interest();
interest.wireDecode(new Blob(TlvInterest));
Console.Out.WriteLine("Interest:");
dumpInterest(interest);
// Set the name again to clear the cached encoding so we encode again.
interest.setName(interest.getName());
var encoding = interest.wireEncode();
Console.Out.WriteLine("");
Console.Out.WriteLine("Re-encoded interest " + encoding.toHex());
var reDecodedInterest = new Interest();
reDecodedInterest.wireDecode(encoding);
Console.Out.WriteLine("");
Console.Out.WriteLine("Re-decoded Interest:");
dumpInterest(reDecodedInterest);
var freshInterest = new Interest(new Name("/ndn/abc"));
freshInterest.setMinSuffixComponents(4);
freshInterest.setMaxSuffixComponents(6);
freshInterest.setInterestLifetimeMilliseconds(30000);
freshInterest.setChildSelector(1);
freshInterest.setMustBeFresh(true);
freshInterest.getKeyLocator().setType(KeyLocatorType.KEY_LOCATOR_DIGEST);
freshInterest.getKeyLocator().setKeyData
(new Blob(new byte[] {
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F }));
freshInterest.getExclude().appendComponent(new Name("abc").get(0)).appendAny();
var identityStorage = new MemoryIdentityStorage();
var privateKeyStorage = new MemoryPrivateKeyStorage();
var keyChain = new KeyChain
(new IdentityManager(identityStorage, privateKeyStorage),
new SelfVerifyPolicyManager(identityStorage));
// Initialize the storage.
var keyName = new Name("/testname/DSK-123");
var certificateName = keyName.getSubName(0, keyName.size() - 1).append
("KEY").append(keyName.get(-1)).append("ID-CERT").append("0");
identityStorage.addKey(keyName, KeyType.RSA, new Blob(DEFAULT_RSA_PUBLIC_KEY_DER));
privateKeyStorage.setKeyPairForKeyName
(keyName, KeyType.RSA, new ByteBuffer(DEFAULT_RSA_PUBLIC_KEY_DER),
new ByteBuffer(DEFAULT_RSA_PRIVATE_KEY_DER));
// Make a Face just so that we can sign the interest.
var face = new Face("localhost");
face.setCommandSigningInfo(keyChain, certificateName);
face.makeCommandInterest(freshInterest);
Interest reDecodedFreshInterest = new Interest();
reDecodedFreshInterest.wireDecode(freshInterest.wireEncode());
Console.Out.WriteLine("");
Console.Out.WriteLine("Re-decoded fresh Interest:");
dumpInterest(reDecodedFreshInterest);
VerifyCallbacks callbacks = new VerifyCallbacks("Freshly-signed Interest");
keyChain.verifyInterest(reDecodedFreshInterest, callbacks, callbacks);
}
示例2: Interest
/// <summary>
/// Create a new interest as a deep copy of the given interest.
/// </summary>
///
/// <param name="interest">The interest to copy.</param>
public Interest(Interest interest)
{
this.name_ = new ChangeCounter(new Name());
this.minSuffixComponents_ = -1;
this.maxSuffixComponents_ = -1;
this.keyLocator_ = new ChangeCounter(
new KeyLocator());
this.exclude_ = new ChangeCounter(new Exclude());
this.childSelector_ = -1;
this.mustBeFresh_ = true;
this.interestLifetimeMilliseconds_ = -1;
this.nonce_ = new Blob();
this.getNonceChangeCount_ = 0;
this.lpPacket_ = null;
this.linkWireEncoding_ = new Blob();
this.linkWireEncodingFormat_ = null;
this.link_ = new ChangeCounter(null);
this.selectedDelegationIndex_ = -1;
this.defaultWireEncoding_ = new SignedBlob();
this.getDefaultWireEncodingChangeCount_ = 0;
this.changeCount_ = 0;
name_.set(new Name(interest.getName()));
minSuffixComponents_ = interest.minSuffixComponents_;
maxSuffixComponents_ = interest.maxSuffixComponents_;
keyLocator_.set(new KeyLocator(interest.getKeyLocator()));
exclude_.set(new Exclude(interest.getExclude()));
childSelector_ = interest.childSelector_;
mustBeFresh_ = interest.mustBeFresh_;
interestLifetimeMilliseconds_ = interest.interestLifetimeMilliseconds_;
nonce_ = interest.getNonce();
linkWireEncoding_ = interest.linkWireEncoding_;
linkWireEncodingFormat_ = interest.linkWireEncodingFormat_;
if (interest.link_.get() != null)
link_.set(new Link((Link) interest.link_.get()));
selectedDelegationIndex_ = interest.selectedDelegationIndex_;
setDefaultWireEncoding(interest.getDefaultWireEncoding(),
interest.defaultWireEncodingFormat_);
}
示例3: dumpInterest
static void dumpInterest(Interest interest)
{
Console.Out.WriteLine("name: " + interest.getName().toUri());
Console.Out.WriteLine("minSuffixComponents: " +
(interest.getMinSuffixComponents() >= 0 ?
"" + interest.getMinSuffixComponents() : "<none>"));
Console.Out.WriteLine("maxSuffixComponents: " +
(interest.getMaxSuffixComponents() >= 0 ?
"" + interest.getMaxSuffixComponents() : "<none>"));
Console.Out.Write("keyLocator: ");
if (interest.getKeyLocator().getType() == KeyLocatorType.NONE)
Console.Out.WriteLine("<none>");
else if (interest.getKeyLocator().getType() ==KeyLocatorType.KEY_LOCATOR_DIGEST)
Console.Out.WriteLine("KeyLocatorDigest: " + interest.getKeyLocator().getKeyData().toHex());
else if (interest.getKeyLocator().getType() == KeyLocatorType.KEYNAME)
Console.Out.WriteLine("KeyName: " + interest.getKeyLocator().getKeyName().toUri());
else
Console.Out.WriteLine("<unrecognized ndn_KeyLocatorType>");
Console.Out.WriteLine
("exclude: " + (interest.getExclude().size() > 0 ?
interest.getExclude().toUri() : "<none>"));
Console.Out.WriteLine("lifetimeMilliseconds: " +
(interest.getInterestLifetimeMilliseconds() >= 0 ?
"" + interest.getInterestLifetimeMilliseconds() : "<none>"));
Console.Out.WriteLine("childSelector: " +
(interest.getChildSelector() >= 0 ?
"" + interest.getChildSelector() : "<none>"));
Console.Out.WriteLine("mustBeFresh: " + interest.getMustBeFresh());
Console.Out.WriteLine("nonce: " +
(interest.getNonce().size() > 0 ?
"" + interest.getNonce().toHex() : "<none>"));
}
示例4: decodeSelectors
private static void decodeSelectors(Interest interest, TlvDecoder decoder,
bool copy)
{
int endOffset = decoder.readNestedTlvsStart(net.named_data.jndn.encoding.tlv.Tlv.Selectors);
interest.setMinSuffixComponents((int) decoder
.readOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.MinSuffixComponents,
endOffset));
interest.setMaxSuffixComponents((int) decoder
.readOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.MaxSuffixComponents,
endOffset));
if (decoder.peekType(net.named_data.jndn.encoding.tlv.Tlv.PublisherPublicKeyLocator, endOffset))
decodeKeyLocator(net.named_data.jndn.encoding.tlv.Tlv.PublisherPublicKeyLocator,
interest.getKeyLocator(), decoder, copy);
else
interest.getKeyLocator().clear();
if (decoder.peekType(net.named_data.jndn.encoding.tlv.Tlv.Exclude, endOffset))
decodeExclude(interest.getExclude(), decoder, copy);
else
interest.getExclude().clear();
interest.setChildSelector((int) decoder
.readOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.ChildSelector, endOffset));
interest.setMustBeFresh(decoder.readBooleanTlv(net.named_data.jndn.encoding.tlv.Tlv.MustBeFresh,
endOffset));
decoder.finishNestedTlvs(endOffset);
}
示例5: encodeSelectors
/// <summary>
/// Encode the interest selectors. If no selectors are written, do not output
/// a Selectors TLV.
/// </summary>
///
private static void encodeSelectors(Interest interest, TlvEncoder encoder)
{
int saveLength = encoder.getLength();
// Encode backwards.
if (interest.getMustBeFresh())
encoder.writeTypeAndLength(net.named_data.jndn.encoding.tlv.Tlv.MustBeFresh, 0);
encoder.writeOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.ChildSelector,
interest.getChildSelector());
if (interest.getExclude().size() > 0)
encodeExclude(interest.getExclude(), encoder);
if (interest.getKeyLocator().getType() != net.named_data.jndn.KeyLocatorType.NONE)
encodeKeyLocator(net.named_data.jndn.encoding.tlv.Tlv.PublisherPublicKeyLocator,
interest.getKeyLocator(), encoder);
encoder.writeOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.MaxSuffixComponents,
interest.getMaxSuffixComponents());
encoder.writeOptionalNonNegativeIntegerTlv(net.named_data.jndn.encoding.tlv.Tlv.MinSuffixComponents,
interest.getMinSuffixComponents());
// Only output the type and length if values were written.
if (encoder.getLength() != saveLength)
encoder.writeTypeAndLength(net.named_data.jndn.encoding.tlv.Tlv.Selectors, encoder.getLength()
- saveLength);
}
示例6: dumpInterest
private static ArrayList dumpInterest(Interest interest)
{
ArrayList result = new ArrayList();
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("name:", interest.getName().toUri()));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump(
"minSuffixComponents:",
(interest.getMinSuffixComponents() >= 0) ? (Object) (interest.getMinSuffixComponents()) : (Object) ("<none>")));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump(
"maxSuffixComponents:",
(interest.getMaxSuffixComponents() >= 0) ? (Object) (interest.getMaxSuffixComponents()) : (Object) ("<none>")));
if (interest.getKeyLocator().getType() != net.named_data.jndn.KeyLocatorType.NONE) {
if (interest.getKeyLocator().getType() == net.named_data.jndn.KeyLocatorType.KEY_LOCATOR_DIGEST)
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("keyLocator: KeyLocatorDigest:", interest
.getKeyLocator().getKeyData().toHex()));
else if (interest.getKeyLocator().getType() == net.named_data.jndn.KeyLocatorType.KEYNAME)
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("keyLocator: KeyName:", interest
.getKeyLocator().getKeyName().toUri()));
else
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("keyLocator: <unrecognized KeyLocatorType"));
} else
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("keyLocator: <none>"));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("exclude:", (interest.getExclude().size() > 0) ? interest
.getExclude().toUri() : "<none>"));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("childSelector:",
(interest.getChildSelector() >= 0) ? (Object) (interest.getChildSelector())
: (Object) ("<none>")));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("mustBeFresh:", (interest.getMustBeFresh()) ? "true"
: "false"));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("nonce:", (interest.getNonce().size() == 0) ? "<none>"
: interest.getNonce().toHex()));
ILOG.J2CsMapping.Collections.Collections.Add(result,dump("lifetimeMilliseconds:",
(interest.getInterestLifetimeMilliseconds() < 0) ? "<none>" : ""
+ (long) interest.getInterestLifetimeMilliseconds()));
return result;
}
示例7: createFreshInterest
private static Interest createFreshInterest()
{
Interest freshInterest = new Interest(new Name("/ndn/abc"))
.setMustBeFresh(false).setMinSuffixComponents(4)
.setMaxSuffixComponents(6)
.setInterestLifetimeMilliseconds(30000).setChildSelector(1)
.setMustBeFresh(true);
freshInterest.getKeyLocator()
.setType(net.named_data.jndn.KeyLocatorType.KEY_LOCATOR_DIGEST);
freshInterest.getKeyLocator().setKeyData(
new Blob(new int[] { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06,
0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18,
0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F }));
freshInterest.getExclude().appendComponent(new Name("abc").get(0))
.appendAny();
return freshInterest;
}
示例8: testMatchesData
public void testMatchesData()
{
Interest interest = new Interest(new Name("/A"));
interest.setMinSuffixComponents(2);
interest.setMaxSuffixComponents(2);
interest.getKeyLocator().setType(net.named_data.jndn.KeyLocatorType.KEYNAME);
interest.getKeyLocator().setKeyName(new Name("/B"));
interest.getExclude().appendComponent(new Name.Component("J"));
interest.getExclude().appendAny();
Data data = new Data(new Name("/A/D"));
Sha256WithRsaSignature signature = new Sha256WithRsaSignature();
signature.getKeyLocator().setType(net.named_data.jndn.KeyLocatorType.KEYNAME);
signature.getKeyLocator().setKeyName(new Name("/B"));
data.setSignature(signature);
Assert.AssertEquals(true, interest.matchesData(data));
// Check violating MinSuffixComponents.
Data data1 = new Data(data);
data1.setName(new Name("/A"));
Assert.AssertEquals(false, interest.matchesData(data1));
Interest interest1 = new Interest(interest);
interest1.setMinSuffixComponents(1);
Assert.AssertEquals(true, interest1.matchesData(data1));
// Check violating MaxSuffixComponents.
Data data2 = new Data(data);
data2.setName(new Name("/A/E/F"));
Assert.AssertEquals(false, interest.matchesData(data2));
Interest interest2 = new Interest(interest);
interest2.setMaxSuffixComponents(3);
Assert.AssertEquals(true, interest2.matchesData(data2));
// Check violating PublisherPublicKeyLocator.
Data data3 = new Data(data);
Sha256WithRsaSignature signature3 = new Sha256WithRsaSignature();
signature3.getKeyLocator().setType(net.named_data.jndn.KeyLocatorType.KEYNAME);
signature3.getKeyLocator().setKeyName(new Name("/G"));
data3.setSignature(signature3);
Assert.AssertEquals(false, interest.matchesData(data3));
Interest interest3 = new Interest(interest);
interest3.getKeyLocator().setType(net.named_data.jndn.KeyLocatorType.KEYNAME);
interest3.getKeyLocator().setKeyName(new Name("/G"));
Assert.AssertEquals(true, interest3.matchesData(data3));
Data data4 = new Data(data);
data4.setSignature(new DigestSha256Signature());
Assert.AssertEquals(false, interest.matchesData(data4));
Interest interest4 = new Interest(interest);
interest4.setKeyLocator(new KeyLocator());
Assert.AssertEquals(true, interest4.matchesData(data4));
// Check violating Exclude.
Data data5 = new Data(data);
data5.setName(new Name("/A/J"));
Assert.AssertEquals(false, interest.matchesData(data5));
Interest interest5 = new Interest(interest);
interest5.getExclude().clear();
interest5.getExclude().appendComponent(new Name.Component("K"));
interest5.getExclude().appendAny();
Assert.AssertEquals(true, interest5.matchesData(data5));
// Check violating Name.
Data data6 = new Data(data);
data6.setName(new Name("/H/I"));
Assert.AssertEquals(false, interest.matchesData(data6));
Data data7 = new Data(data);
data7.setName(new Name("/A/B"));
Interest interest7 = new Interest(
new Name(
"/A/B/sha256digest="
+ "54008e240a7eea2714a161dfddf0dd6ced223b3856e9da96792151e180f3b128"));
Assert.AssertEquals(true, interest7.matchesData(data7));
// Check violating the implicit digest.
Interest interest7b = new Interest(new Name(
"/A/B/%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00"
+ "%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00"));
Assert.AssertEquals(false, interest7b.matchesData(data7));
// Check excluding the implicit digest.
Interest interest8 = new Interest(new Name("/A/B"));
interest8.getExclude().appendComponent(interest7.getName().get(2));
Assert.AssertEquals(false, interest8.matchesData(data7));
}