Kerry didn't deserve his medals, including three highly questionable Purple Hearts (which he personally initiated the requests for). He spent only three months in Viet Nam and did such a rotten job that, when he asked to return the U.S., his commanding officer heartily endorsed it. He wanted Kerry gone as soon as possible, to restore morale. Kerry refuses to allow the release of his military personnel records.
John McCain has a Purple Heart also, which he didn't request, for severe injuries suffered when his plane crashed after being hit by anti-aircraft fire. He also suffered previous injuries aboard the USS Forrestal in the Gulf of Tonkin, when a 1000 pound bomb exploded near him and killed 28 other men. He refused medical attention for multiple shrapnel wounds to his chest and legs and went immediately to the hanger deck to help sailors jettison ammunition before the nearby fires could set it off. None of the 161 injured on the Forrestal got the Purple Heart because, being offshore, it was technically not in a combat zone.
Read "Unfit for Command" about John Kerry.
Read "Sailors to the End" by Gregory Freeman about the Forrestal and John McCain.