⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tkeyrecord.java

📁 linux下建立JAVA虚拟机的源码KAFFE
💻 JAVA
字号:
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)package org.xbill.DNS;import java.io.*;import java.util.*;import org.xbill.DNS.utils.*;/** * Transaction Key - used to compute and/or securely transport a shared * secret to be used with TSIG. * @see TSIG * * @author Brian Wellington */public class TKEYRecord extends Record {private Name alg;private Date timeInception;private Date timeExpire;private int mode, error;private byte [] key;private byte [] other;/** The key is assigned by the server (unimplemented) */public static final int SERVERASSIGNED		= 1;/** The key is computed using a Diffie-Hellman key exchange */public static final int DIFFIEHELLMAN		= 2;/** The key is computed using GSS_API (unimplemented) */public static final int GSSAPI			= 3;/** The key is assigned by the resolver (unimplemented) */public static final int RESOLVERASSIGNED	= 4;/** The key should be deleted */public static final int DELETE			= 5;TKEYRecord() {}RecordgetObject() {	return new TKEYRecord();}/** * Creates a TKEY Record from the given data. * @param alg The shared key's algorithm * @param timeInception The beginning of the validity period of the shared * secret or keying material * @param timeExpire The end of the validity period of the shared * secret or keying material * @param mode The mode of key agreement * @param error The extended error field.  Should be 0 in queries * @param key The shared secret * @param other The other data field.  Currently unused * responses. */publicTKEYRecord(Name name, int dclass, long ttl, Name alg,	   Date timeInception, Date timeExpire, int mode, int error,	   byte [] key, byte other[]){	super(name, Type.TKEY, dclass, ttl);	this.alg = checkName("alg", alg);	this.timeInception = timeInception;	this.timeExpire = timeExpire;	this.mode = checkU16("mode", mode);	this.error = checkU16("error", error);	this.key = key;	this.other = other;}voidrrFromWire(DNSInput in) throws IOException {	alg = new Name(in);	timeInception = new Date(1000 * in.readU32());	timeExpire = new Date(1000 * in.readU32());	mode = in.readU16();	error = in.readU16();	int keylen = in.readU16();	if (keylen > 0)		key = in.readByteArray(keylen);	else		key = null;	int otherlen = in.readU16();	if (otherlen > 0)		other = in.readByteArray(otherlen);	else		other = null;}voidrdataFromString(Tokenizer st, Name origin) throws IOException {	throw st.exception("no text format defined for TKEY");}protected StringmodeString() {	switch (mode) {		case SERVERASSIGNED:	return "SERVERASSIGNED";		case DIFFIEHELLMAN:	return "DIFFIEHELLMAN";		case GSSAPI:		return "GSSAPRESOLVERASSIGNED";		case RESOLVERASSIGNED:	return "RESOLVERASSIGNED";		case DELETE:		return "DELETE";		default:		return Integer.toString(mode);	}}/** Converts rdata to a String */StringrrToString() {	StringBuffer sb = new StringBuffer();	sb.append(alg);	sb.append(" ");	if (Options.check("multiline"))		sb.append("(\n\t");	sb.append(FormattedTime.format(timeInception));	sb.append(" ");	sb.append(FormattedTime.format(timeExpire));	sb.append(" ");	sb.append(modeString());	sb.append(" ");	sb.append(Rcode.TSIGstring(error));	if (Options.check("multiline")) {		sb.append("\n");		if (key != null) {			sb.append(base64.formatString(key, 64, "\t", false));			sb.append("\n");		}		if (other != null)			sb.append(base64.formatString(other, 64, "\t", false));		sb.append(" )");	} else {		sb.append(" ");		if (key != null) {			sb.append(base64.toString(key));			sb.append(" ");		}		if (other != null)			sb.append(base64.toString(other));	}	return sb.toString();}/** Returns the shared key's algorithm */public NamegetAlgorithm() {	return alg;}/** * Returns the beginning of the validity period of the shared secret or * keying material */public DategetTimeInception() {	return timeInception;}/** * Returns the end of the validity period of the shared secret or * keying material */public DategetTimeExpire() {	return timeExpire;}/** Returns the key agreement mode */public intgetMode() {	return mode;}/** Returns the extended error */public intgetError() {	return error;}/** Returns the shared secret or keying material */public byte []getKey() {	return key;}/** Returns the other data */public byte []getOther() {	return other;}voidrrToWire(DNSOutput out, Compression c, boolean canonical) {	alg.toWire(out, null, canonical);	out.writeU32(timeInception.getTime() / 1000);	out.writeU32(timeExpire.getTime() / 1000);	out.writeU16(mode);	out.writeU16(error);	if (key != null) {		out.writeU16(key.length);		out.writeByteArray(key);	}	else		out.writeU16(0);	if (other != null) {		out.writeU16(other.length);		out.writeByteArray(other);	}	else		out.writeU16(0);}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -