I just wondering the reason why there is no encryption tool for GSM calling in android.
Is it legal or technical problem?
There are two levels of technical reason why this wouldn't work.
Not all mobile phones allow the software to control the audio that gets sent over a voice call: the microphone feeds directly into the cell radio. This is the same reason that apps to record calls or play sound over calls don't work on every phone.
GSM lossily compresses the sound signal using methods that are specifically designed to work with voice. If you were to try to send arbitrary data (such as an encrypted signal) over GSM, it would come out garbled at the other end.
If you want to make a phone call that your carrier can't eavesdrop, there are apps available to do this, but they work over wireless Internet, not over GSM (i.e. they use data not voice).