package plan9.auth;import java.math.BigInteger;import java.nio.ByteBuffer;import plan9.lib.Attrs;public abstract class PK implements Packable { // no constructor, each type has a specific generator in xSK, with appropriate parameters, // then apply sktopk. genSK generates a new SK/PK combination but with similar parameters (eg, key length) public abstract int nbits(); public abstract void pack(ByteBuffer b); public abstract String toString(); public abstract boolean verify(PKsig sig, BigInteger m); public boolean eq(PK pk2){ return pk2 != null && (this == pk2 || this.toString().equals(pk2.toString())); }}
package plan9.auth;
import java.math.BigInteger;
import java.nio.ByteBuffer;
import plan9.lib.Attrs;
public abstract class PK implements Packable {
// no constructor, each type has a specific generator in xSK, with appropriate parameters,
// then apply sktopk. genSK generates a new SK/PK combination but with similar parameters (eg, key length)
public abstract int nbits();
public abstract void pack(ByteBuffer b);
public abstract String toString();
public abstract boolean verify(PKsig sig, BigInteger m);
public boolean eq(PK pk2){
return pk2 != null && (this == pk2 || this.toString().equals(pk2.toString()));
}
}