protected boolean checkPskIdentity(String endpoint, Identity clientIdentity, SecurityInfo securityInfo) { // Manage PSK authentication // ---------------------------------------------------- if (!securityInfo.usePSK()) { LOG.debug("Client '{}' is not supposed to use PSK to authenticate", endpoint); return false; } if (!matchPskIdentity(endpoint, clientIdentity.getPskIdentity(), securityInfo.getIdentity())) { return false; } LOG.trace("Authenticated client '{}' using DTLS PSK", endpoint); return true; }
public static JsonObject serialize(Identity identity) { JsonObject o = Json.object(); o.set(KEY_ADDRESS, identity.getPeerAddress().getHostString()); o.set(KEY_PORT, identity.getPeerAddress().getPort()); if (identity.isPSK()) { o.set(KEY_ID, identity.getPskIdentity()); } else if (identity.isRPK()) { PublicKey publicKey = identity.getRawPublicKey(); o.set(KEY_RPK, Hex.encodeHexString(publicKey.getEncoded())); } else if (identity.isX509()) { o.set(KEY_CN, identity.getX509CommonName()); } return o; }
public static JsonObject serialize(Identity identity) { JsonObject o = Json.object(); o.set(KEY_ADDRESS, identity.getPeerAddress().getHostString()); o.set(KEY_PORT, identity.getPeerAddress().getPort()); if (identity.isPSK()) { o.set(KEY_ID, identity.getPskIdentity()); } else if (identity.isRPK()) { PublicKey publicKey = identity.getRawPublicKey(); o.set(KEY_RPK, Hex.encodeHexString(publicKey.getEncoded())); } else if (identity.isX509()) { o.set(KEY_CN, identity.getX509CommonName()); } return o; }
/** * Create californium endpoint context from leshan identity. * * @param identity leshan identity received on last registration. * @return californium endpoint context for leshan identity */ public static EndpointContext extractContext(Identity identity) { Principal peerIdentity = null; if (identity != null) { if (identity.isPSK()) { peerIdentity = new PreSharedKeyIdentity(identity.getPskIdentity()); } else if (identity.isRPK()) { peerIdentity = new RawPublicKeyIdentity(identity.getRawPublicKey()); } else if (identity.isX509()) { /* simplify distinguished name to CN= part */ peerIdentity = new X500Principal("CN=" + identity.getX509CommonName()); } } return new AddressEndpointContext(identity.getPeerAddress(), peerIdentity); }