วิธีไพพ์ stdout แบบไบนารีไปยังการเชื่อมต่อ tls ที่บีบอัดได้อย่างไร


0

เมื่อไม่นานมานี้ฉันสามารถใช้:

cat somefile.txt | openssl s_client -connect server:port -quiet -comp

อย่างไรก็ตามคำสั่งนี้ใช้งานไม่ได้แม้กับ-ign_eof:

$ cat somefile.bmp | openssl s_client -connect server:port -quiet -ign_eof
write:errno=32

เพราะ somefile ประกอบด้วยข้อมูลไบนารีบริสุทธิ์(ที่.bmpเป็นรูปแบบเดียวที่ได้รับการยอมรับโดยเซิร์ฟเวอร์และsomefile.bmpจะต้องใช้เวลามากเกินไปที่จะส่งการบีบอัด)

ไม่ใช่เพื่อความปลอดภัยเนื่องจากข้อมูลที่ฉันส่งเป็นข้อมูลสาธารณะ แต่ฉันไม่ได้ควบคุมเซิร์ฟเวอร์ที่ไม่อนุญาตการเชื่อมต่อที่ปลอดภัย


ในความเป็นจริง somefile.bmp ถูกสร้างขึ้นแบบไดนามิกโดยสคริปต์ทุบตีของฉันเป็นส่วนต่าง ๆ ของการส่งต้องรอการตอบสนองจากเซิร์ฟเวอร์ดังนั้นฉันไม่สามารถอ่านจากไฟล์โดยตรง แต่ต้องใช้ไพพ์
user2284570

ท่อของคุณเสียนั่นคือสิ่งที่ errno 32 มีความหมายดังนั้นฉันแนะนำให้คุณใช้enc base64ก่อนทำแมว
Moises Najar

@MoisesNajar: ตกลงคุณกำลังด้านขวาstackoverflow.com/q/36924673/2284570
user2284570

คำตอบ:


0

หากมีตัวแบ่งบรรทัด (เช่น\n) ในไบนารีของคุณคุณควรเพิ่มการตั้งค่าสถานะ-crlfเป็นopenssl s_clientคำสั่งเพื่อให้รับรู้การแบ่งบรรทัด


พวกเขาเป็นตัวแบ่งบรรทัด crlfs ดังนั้นสิ่งนี้จะไม่ทำงาน ฉันกำลังส่งข้อมูลที่บีบอัด
user2284570

-1

-comp ได้รับการแนะนำใน openssl 1.1.0

https://www.openssl.org/docs/manmaster/ssl/SSL_CONF_cmd.html

ใน cygwin openssl คือ 1.0.2g-3 ดังนั้นคุณจึงไม่สามารถใช้งานได้ คุณลองรูปแบบภาพอื่นได้หรือไม่


ปัญหาไม่ได้เกิดขึ้นกับ-compตัวเลือกว่ามีอยู่หรือไม่และไม่สามารถใช้งานได้ โปรดอ่านร่างกายคำถาม
2284570

อาจเป็นเพราะคุณไม่ควรเขียนคำถามที่ทำให้เข้าใจผิด “ ฉันสามารถใช้งานได้” ไม่เป็นความจริงสำหรับ cygwin
matzeri

การรวบรวม openssl เป็นเรื่องเล็กน้อยหากคุณมีแพ็คเกจที่จำเป็นติดตั้งไว้แล้ว เพียงเน้นปัญหาที่อธิบายไว้ในคำถาม ฉันอ่านโพสต์ที่มีอยู่ในรายชื่อผู้รับจดหมาย openssl ที่มีปัญหาเดียวกันนักพัฒนาตอบว่าs_clientสำหรับการทดสอบและไม่ใช่ของจริงและstunnelควรใช้สิ่งที่คล้ายแทน(ซึ่งเป็นจุดโพสต์ของฉันเพราะฉันไม่ได้ ดูว่า stunnel สามารถใช้กับ
ไพพ์ได้อย่างไร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.