I have found the problem in the library I am using: First, a Twitter request object is created. Second, a signature is generated. Third, params are then added to the request object. This addition of the params after the signing invalidates the signature. All params need to be added before signing.
Unfortunately this appears to require quite a bit of rework.