I'm looking for a word for concealment of faults.
In this case, someone has a specific fault and actively, purposefully hides it from others, going out of their way to conceal these faults from others.
It's a close-opposite of hypocrisy or deceit, where one pretends to have a good quality that one does not possess. This would be a superimposition of a non-existent good quality, while the word I'm looking for would be the deprecation of an existent fault or negative quality.
Also, not a mere denial or non-acknowledgement of the fault, but an active secrecy or pretence.
Is dissimulation my best bet? That doesn't seem to necessarily include concealment of a fault, just concealment in general.
Examples: 1) Fearing what his parents might think, John pretended to be a non-smoker. When they asked him directly about it his words faltered, not wishing to lie but also not wishing to reveal his shortcoming. In the end, the best he could manage were a few unclear words denying the fact and, hoping his parents believed him, quickly changed the subject. 2) John thoroughly enjoyed hunting, but in the company of others, from fear of damaging his reputation, was scrupulous in concealing this and even went out of his way to appear outspoken against hunting.
The close-opposite (hypocrisy) would be: For fame and fortune, John pretended to be able to read others' minds and offered his services at a reasonable rate. To avoid being discovered as a fraud, he kept his readings vague and used intrigue to keep his clients hooked.
So I hope these help give a clearer idea of what I'm looking for. I am not so much looking for a word to slot into those sentences, but rather a word for what such an attitude or behaviour is called.
Many thanks for all the work!