user-1: lets say i have sha256 Private Key Hexadecimal Format
0000000000000000000000000000000000000000000000000000000000000001

how can i get P2SH address and its corresponding WIF private KEY ?
by P2SH i mean P2SH-P2WPKH address starting with 3. 
are these called 1-of-1 multisig address ?

user51948: Private keys give public keys, which can give bitcoin addresses starting with a 1. But a P2SH address (starting with a 3) is simply the hash of a script, and that script could be almost anything, it isn't usually associated with a single public/private key. Perhaps you mean P2SH-P2WPKH? In that case you could read something like this: https://bitcoincore.org/en/segwit_wallet_dev/ (specifically the section called 'Creation of P2SH-P2WPKH Address'). Otherwise maybe something like a 1-of-1 multisig address or simple P2SH encoding a normal P2PK/P2PKH redeem script? I'll update this answer if you clarify exactly what you mean :)

user1030: It's the same b58check(HASH160), but you're hashing a script.
The script for 1-to-1 multisig P2SH addresses is OP_0 hash160(pubkey).
So your address would be b58check(hash160('\x00\x14' + hash160(pubkey))).
Long story short:
1) WIF to pubkey:

secret = b58check_decode(WIF)
pubkey = ECKey(secret).pubkey

2) pubkey to P2PKH (legacy address):

addrtype = 0
addr = b58check(addrtype, hash160(pubkey))

3) pubkey to P2SH (1-to-1 multisig address):

addrtype = 5
addr = b58check(addrtype, hash160('\x00\x14' + hash160(pubkey)))    

where hash160(x) = ripemd160(sha256(x))

That's, basically, it. Also see https://github.com/joric/pywallet/issues/1
Regarding 32-byte secret to WIF conversion - bitcoin core doesn't tell apart different WIF's it's just b58check(secret) type 0x80. Importprivkey command generates 3 different addresses - P2PKH, P2SH and BECH32 from the same secret, and you can reexport-reimport the secret anytime.

-1: <p>lets say i have sha256 Private Key Hexadecimal Format</p>

<pre><code>0000000000000000000000000000000000000000000000000000000000000001
</code></pre>

<p>how can i get <code>P2SH</code> address and its corresponding WIF private KEY ?</p>

<p>by <code>P2SH</code> i mean <code>P2SH-P2WPKH</code> address starting with <code>3</code>. 
are these called 1-of-1 multisig address ?</p>
 51948: <p>Private keys give public keys, which can give bitcoin addresses starting with a 1. But a P2SH address (starting with a 3) is simply the hash of a script, and that script could be almost anything, it isn't usually associated with a single public/private key. Perhaps you mean P2SH-P2WPKH? In that case you could read something like this: <a href="https://bitcoincore.org/en/segwit_wallet_dev/" rel="nofollow noreferrer">https://bitcoincore.org/en/segwit_wallet_dev/</a> (specifically the section called 'Creation of P2SH-P2WPKH Address'). Otherwise maybe something like a 1-of-1 multisig address or simple P2SH encoding a normal P2PK/P2PKH redeem script? I'll update this answer if you clarify exactly what you mean :)</p>
 1030: <p>It's the same <code>b58check(HASH160)</code>, but you're hashing a script.</p>

<p>The script for 1-to-1 multisig P2SH addresses is <code>OP_0 hash160(pubkey)</code>.</p>

<p>So your address would be <code>b58check(hash160('\x00\x14' + hash160(pubkey)))</code>.</p>

<p>Long story short:</p>

<pre><code>1) WIF to pubkey:

secret = b58check_decode(WIF)
pubkey = ECKey(secret).pubkey

2) pubkey to P2PKH (legacy address):

addrtype = 0
addr = b58check(addrtype, hash160(pubkey))

3) pubkey to P2SH (1-to-1 multisig address):

addrtype = 5
addr = b58check(addrtype, hash160('\x00\x14' + hash160(pubkey)))    

where hash160(x) = ripemd160(sha256(x))
</code></pre>

<p>That's, basically, it. Also see <a href="https://github.com/joric/pywallet/issues/1" rel="nofollow noreferrer">https://github.com/joric/pywallet/issues/1</a></p>

<p>Regarding 32-byte secret to WIF conversion - bitcoin core doesn't tell apart different WIF's it's just b58check(secret) type 0x80. Importprivkey command generates 3 different addresses - P2PKH, P2SH and BECH32 from the same secret, and you can reexport-reimport the secret anytime.</p>
