My understanding of current Swiss law is that:
- you do not need to show proof of "need" (like in most other Western countries): you don't have to be a hunter, or a member of a target shooting club to buy a gun
- you do need a buying permit to buy up to three firearms (handguns, semi-auto rifles, ...) from the local cops, from a single seller (private seller or a professional/licensed dealer). Guns have to be registered once purchased (seller does the registration)
- some guns a exempt from the permit requirement (some bolt action guns, don't know whether there's a caliber limit) but still have to be registered
- during military service (which spans over 6-7 years, three weeks a year IIRC), people can still keep their service (full auto) rifle at home, although I think the military doesn't provide ammunition anymore
- most of current firearms laws stem from the Federal level although some have been known to go rogue: require one permit per gun instead of issuing a single permit from three guns as requested (keep in mind that 1 permit = 50 CHF fee). But this was just blatant non-compliance with Federal law rather than real Canton-level legislation.
Private transactions were exempt from the permit requirement and registration until 2008 I think.