void
rdataFromString(Tokenizer st, Name origin) throws IOException {
	String flagString = st.getIdentifier();
	flags = Flags.value(flagString);
	if (flags < 0)
		throw st.exception("Invalid flags: " + flagString);
	String protoString = st.getIdentifier();
	proto = Protocol.value(protoString);
	if (proto < 0)
		throw st.exception("Invalid protocol: " + protoString);
	String algString = st.getIdentifier();
	alg = DNSSEC.Algorithm.value(algString);
	if (alg < 0)
		throw st.exception("Invalid algorithm: " + algString);
	/* If this is a null KEY, there's no key data */
	if ((flags & Flags.USE_MASK) == Flags.NOKEY)
		key = null;
	else
		key = st.getBase64();
}
Creates a KEY Record from the given data
@param flags Flags describing the key's properties
@param proto The protocol that the key was created for
@param alg The key's algorithm
@param key The key as a PublicKey
@throws DNSSEC.DNSSECException The PublicKey could not be converted into DNS
format.
src/main/java/core/org/xbill/DNS/KEYRecord.java