For examples of actual implementations see the org.spongycastle.openpgp.operator.bc and org.spongycastle.openpgp.operator.jcajce packages.