/// <summary> /// Set the key name in keyHandle according to identityName and params. /// </summary> /// protected static internal void setKeyName(TpmKeyHandle keyHandle, Name identityName, KeyParams paras) { Name.Component keyId; if (paras.getKeyIdType() == net.named_data.jndn.security.KeyIdType.USER_SPECIFIED) { keyId = paras.getKeyId(); } else if (paras.getKeyIdType() == net.named_data.jndn.security.KeyIdType.SHA256) { byte[] digest = net.named_data.jndn.util.Common.digestSha256(keyHandle.derivePublicKey() .buf()); keyId = new Name.Component(digest); } else if (paras.getKeyIdType() == net.named_data.jndn.security.KeyIdType.RANDOM) { if (paras.getKeyId().getValue().size() == 0) { throw new TpmBackEnd.Error( "setKeyName: The keyId is empty for type RANDOM"); } keyId = paras.getKeyId(); } else { throw new TpmBackEnd.Error("setKeyName: unrecognized params.getKeyIdType()"); } keyHandle.setKeyName(net.named_data.jndn.security.pib.PibKey.constructKeyName(identityName, keyId)); }
/// <summary> /// Get the public portion of an asymmetric key pair with name keyName. /// </summary> /// /// <param name="keyName">The name of the key.</param> /// <returns>The encoded public key, or an isNull Blob if the key does not exist.</returns> public Blob getPublicKey(Name keyName) { TpmKeyHandle key = findKey(keyName); if (key == null) { return(new Blob()); } else { return(key.derivePublicKey()); } }