Is a secret key generated with its own public and private keys any less secure than a "normal" secret key generated using DH key exchange?
Example:
KeyPair keyPair = kpg.genKeyPair();
publicKey = (DHPublicKey) keyPair.getPublic();
privateKey = (DHPrivateKey) keyPair.getPrivate();
KeyAgreement keyAgreement = KeyAgreement.getInstance("DH");
keyAgreement.init(privateKey);
keyAgreement.doPhase(
KeyFactory.getInstance("DH")
.generatePublic(
new DHPublicKeySpec(publicKey.getY(), P, G)
),
true);
secretKey = keyAgreement.generateSecret();