kite key: support passing a readable stream