If you pass a square wave (clk) through a LPF with a cut off at the close to the clk frequency you'll get out a sine wave. If your original signal is a sinewave don't bother with this part.
Now full-wave rectify the sine wave
then on the rectified signal, place a comparator (comparing vith a voltage somewhere between 0V and Vpeak, (easiest to use a pot connected as a voltage divider), thweaking this voltage will alter the duty cycle of the square wave output.
If you need to sharpen the edges after the comparator, place a couple of inverters on the end.
If you want to get a sine wave back - LPF
Depending on your rectifier choice, you may have to use a fully differential amp (or some other way), to convert your single enden sine wave into a differential one.
The one I gave works, you have to set the duty cycle by eye(using a scope).
I can send you a block diagram if you want. It's pretty straight forward.
convert clock to sinewave (if necessary) with a LPF
Make clock differential (if you use a bridge rectifier) with transformer of fully diff amp or if you use a precision rectifier no need to make differential.
On the rectified sine wave use a comparator to create a square wave clock, tweaking the reference voltage to set the duty cycle.
If you want to get a sine wave back - LPF again. (you could probably LPF the rectified waveform and retrieve a sinewave from there, I'm not sure though.
If you have no limitations on the output duty cycle, then you can do the following :
apply the input signal (with period T ) to delay line (or a buffer) whose delay is adjusted to (T/4) , then XOR the input signal with the delayed one ..
but take care , this circuit doesn't work all the time.