L1B Sentinel-2 data or L1C to L1B converter

I would like to get my hands on some Sentinel-2 L1B data, or convert the L1C data I have to L1B. The reason is that I want to be able to read in a line at a time (in the across-track direction) of TOA reflectance. The geolocation isn’t critical, so a simple affine transformation would probably suffice, but I don’t want to reinvent the wheel! I’m new to S2 data processing, and am puzzled by references to L2A data, which my mind would translate to atmospherically corrected (‘2’) but in the original satellite geometry (‘A’ by analogy with L1A), but it seems it’s also map projected but not in fixed tiles like L1C. Easiest would be a python ‘L1C2L1B’ script or a linux command line utility, if such a thing exists. Can anyone help?