
{b64find} = require '../..'

exports.test_find = (T,cb) ->
  corpus = """
g6Rib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgMnetRTUoE40n8GY8OMnSM4qkVTdJ5bXG
oLpTdjWgNqcKp3BheWxvYWTFAvd7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTIwMzI3N2Fk
NDUzNTI4MTM4ZDI3ZjA2NjNjMzhjOWQyMzM4YWE0NTUzNzQ5ZTViNWM2YTBiYTUzNzYzNWEwMzZhNzBh
IiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwMzI3N2FkNDUzNTI4MTM4ZDI3ZjA2NjNjMzhj
OWQyMzM4YWE0NTUzNzQ5ZTViNWM2YTBiYTUzNzYzNWEwMzZhNzBhIiwidWlkIjoiNmQ0YTY1NWVhMTQ1
YTQwNzI2YjY5YjhmMTllNjI5MTkiLCJ1c2VybmFtZSI6Imphc29uY29vbWJzY2VvIn0sInNlcnZpY2Ui
OnsibmFtZSI6ImdpdGh1YiIsInVzZXJuYW1lIjoicHVibGljc3RhcnR1cCJ9LCJ0eXBlIjoid2ViX3Nl
cnZpY2VfYmluZGluZyIsInZlcnNpb24iOjF9LCJjbGllbnQiOnsibmFtZSI6ImtleWJhc2UuaW8gZ28g
Y2xpZW50IiwidmVyc2lvbiI6IjEuMC43In0sImN0aW1lIjoxNDUxNTQyMjM3LCJleHBpcmVfaW4iOjUw
NDU3NjAwMCwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE0NTE1NDIyMjcsImhhc2giOiJmZjU4ZDc5MmMz
YjgzMjVlOWZiMzNiNmNkNzA4NTBhMmE4MGQ0NWI0ODVhZDNlNWZlMTIxYWY4OGQ0OGJkMzg2OTcyNWIy
MTQ4ZGEyNzFkMTVhM2RhYzFjYzlmNTdlNWIyNzM4ZDMzMmFhMTc2NWNlNWQ0ZWY4MDVjNDk1MGY5NCIs
InNlcW5vIjozNDA2MzV9LCJwcmV2IjoiNTc3YmE0N2Y5YjE5ODI2NmI2NmM1MTE3ZTY2ZmQ1OTgwMGE2
MzU4NGQ3NjRlOThkYzIxN2IyOWNiY2M4OGI1MiIsInNlcW5vIjoxNiwidGFnIjoic2lnbmF0dXJlIn2j
c2lnxEC6tw5+PA7o7Yplpg9dQv+XLYPvbXlf3JcXK0P4D05HkC1NxU5GjPY6+haOB5nx25SKCwWRkaHb
DesQ+W+qH0IOqHNpZ190eXBlIKN0YWfNAgKndmVyc2lvbgE=
"""
  needle = Buffer.from "g6Rib2R5hqhkZXRhY2hlZMOpaGFzaF90eXBlCqNrZXnEIwEgMnetRTUoE40n8GY8OMnSM4qkVTdJ5bXGoLpTdjWgNqcKp3BheWxvYWTFAvd7ImJvZHkiOnsia2V5Ijp7ImVsZGVzdF9raWQiOiIwMTIwMzI3N2FkNDUzNTI4MTM4ZDI3ZjA2NjNjMzhjOWQyMzM4YWE0NTUzNzQ5ZTViNWM2YTBiYTUzNzYzNWEwMzZhNzBhIiwiaG9zdCI6ImtleWJhc2UuaW8iLCJraWQiOiIwMTIwMzI3N2FkNDUzNTI4MTM4ZDI3ZjA2NjNjMzhjOWQyMzM4YWE0NTUzNzQ5ZTViNWM2YTBiYTUzNzYzNWEwMzZhNzBhIiwidWlkIjoiNmQ0YTY1NWVhMTQ1YTQwNzI2YjY5YjhmMTllNjI5MTkiLCJ1c2VybmFtZSI6Imphc29uY29vbWJzY2VvIn0sInNlcnZpY2UiOnsibmFtZSI6ImdpdGh1YiIsInVzZXJuYW1lIjoicHVibGljc3RhcnR1cCJ9LCJ0eXBlIjoid2ViX3NlcnZpY2VfYmluZGluZyIsInZlcnNpb24iOjF9LCJjbGllbnQiOnsibmFtZSI6ImtleWJhc2UuaW8gZ28gY2xpZW50IiwidmVyc2lvbiI6IjEuMC43In0sImN0aW1lIjoxNDUxNTQyMjM3LCJleHBpcmVfaW4iOjUwNDU3NjAwMCwibWVya2xlX3Jvb3QiOnsiY3RpbWUiOjE0NTE1NDIyMjcsImhhc2giOiJmZjU4ZDc5MmMzYjgzMjVlOWZiMzNiNmNkNzA4NTBhMmE4MGQ0NWI0ODVhZDNlNWZlMTIxYWY4OGQ0OGJkMzg2OTcyNWIyMTQ4ZGEyNzFkMTVhM2RhYzFjYzlmNTdlNWIyNzM4ZDMzMmFhMTc2NWNlNWQ0ZWY4MDVjNDk1MGY5NCIsInNlcW5vIjozNDA2MzV9LCJwcmV2IjoiNTc3YmE0N2Y5YjE5ODI2NmI2NmM1MTE3ZTY2ZmQ1OTgwMGE2MzU4NGQ3NjRlOThkYzIxN2IyOWNiY2M4OGI1MiIsInNlcW5vIjoxNiwidGFnIjoic2lnbmF0dXJlIn2jc2lnxEC6tw5+PA7o7Yplpg9dQv+XLYPvbXlf3JcXK0P4D05HkC1NxU5GjPY6+haOB5nx25SKCwWRkaHbDesQ+W+qH0IOqHNpZ190eXBlIKN0YWfNAgKndmVyc2lvbgE=", 'base64'

  T.assert b64find corpus, needle
  T.assert not b64find("ABB" + corpus, needle)
  T.assert b64find("\n\nABBCCC\n\nCCCCC\n\n#{corpus}\nEEEEE===\nFFFFF==\n", needle)
  T.assert b64find(corpus.split(/\n/).join(""), needle)
  cb()

exports.test_find_pgp = (T,cb) ->
  corpus = """
-----BEGIN PGP MESSAGE-----
Version: Keybase OpenPGP v2.0.49
Comment: https://keybase.io/crypto

yMIcAnicrVJbSBVBGD6mFp4KpAsYpeVGmBds5uzuzOyWVARGRCgVQmieZndndb3s
OZ49x2snhKyewkoQKyULvIRBSZlBWRlKRAWhIQT2kBBGYNGLQnabNXsIemxgGOb/
v+/j+37+kZWxHm/M3K0rPVeaytWY58PnIp6CU2f6GgQtYNQJaoNQzhYeVmEwJ+wv
twxBFQAEUFQMGeiYQAMrWEJENCjUqQgBk2QFAqCZWNIRQRhhXSeSggGmBgAy8Eka
8UkmoEKWYFp2CQsFQ5Yd5rJUwYpENKIZQFNEQk0oQcmECOqSKSNDQgbBiCLGiaUB
x2Vwcxp1WLYV4DX+8S/Y+wf+P/uO/JYDoomRZiDCj4ipD2pAIwRTk1EmQsUFOixk
00rG0ZW0VkFCNEvgpWpLZ+5UF1slVrg0ov0ND1M9EKyIOO51WeG6oFuuYZp/UcCv
WbbBB8h51SzkWAFbUCFH6mHLVYCSDHkiWZGzBFYbtELMb7kIGSMC+MkSgiFWzSWx
omOe0pQID8uzA1kHDBo+AxlA4RkJZkhihOmYt6hOoahRHYnUxycDfLIb02FVdkBQ
fdwmLeGSjlVi03AkxITok8dFcZ4Yr2dp/BJ3sTzehMQ/65ZUvOynk2bOX+zanfJl
ABbseN4/mFN8eDy5fmzU3DY6czUu2jv7eOr614M7Og507mm2jlzaGW1/X1FzrO91
auWd/NOdqRMDn/YbnxMmycfkRy/Uoe3qypnBTXnCZPGb3NnuvP5n+24O96W/u922
t6r/FdrSaGfbG7viaWL0bEbOibnCxrTkDxcC3pbxzQUPy2bCRdG5ppqc3jUnM27c
PbC8rGNqyNz1tO12QkqmZq/2Pk0f3rW0qTBmgnWo6743rrrfdjmwPe5HWtU3+eyh
B6eP52WywtaRGdadv2HF0bzcObm1OTZyLfH6+R4VJM0P1o9MrX2Ycvzl+umW6YH2
t/fGWtJ3tm0VfgH+Czll
=MpBu
-----END PGP MESSAGE-----
"""
  needle = Buffer.from "yMIcAnicrVJbSBVBGD6mFp4KpAsYpeVGmBds5uzuzOyWVARGRCgVQmieZndndb3sOZ49x2snhKyewkoQKyULvIRBSZlBWRlKRAWhIQT2kBBGYNGLQnabNXsIemxgGOb/v+/j+37+kZWxHm/M3K0rPVeaytWY58PnIp6CU2f6GgQtYNQJaoNQzhYeVmEwJ+wvtwxBFQAEUFQMGeiYQAMrWEJENCjUqQgBk2QFAqCZWNIRQRhhXSeSggGmBgAy8Eka8UkmoEKWYFp2CQsFQ5Yd5rJUwYpENKIZQFNEQk0oQcmECOqSKSNDQgbBiCLGiaUBx2Vwcxp1WLYV4DX+8S/Y+wf+P/uO/JYDoomRZiDCj4ipD2pAIwRTk1EmQsUFOixk00rG0ZW0VkFCNEvgpWpLZ+5UF1slVrg0ov0ND1M9EKyIOO51WeG6oFuuYZp/UcCvWbbBB8h51SzkWAFbUCFH6mHLVYCSDHkiWZGzBFYbtELMb7kIGSMC+MkSgiFWzSWxomOe0pQID8uzA1kHDBo+AxlA4RkJZkhihOmYt6hOoahRHYnUxycDfLIb02FVdkBQfdwmLeGSjlVi03AkxITok8dFcZ4Yr2dp/BJ3sTzehMQ/65ZUvOynk2bOX+zanfJlABbseN4/mFN8eDy5fmzU3DY6czUu2jv7eOr614M7Og507mm2jlzaGW1/X1FzrO91auWd/NOdqRMDn/YbnxMmycfkRy/Uoe3qypnBTXnCZPGb3NnuvP5n+24O96W/u922t6r/FdrSaGfbG7viaWL0bEbOibnCxrTkDxcC3pbxzQUPy2bCRdG5ppqc3jUnM27cPbC8rGNqyNz1tO12QkqmZq/2Pk0f3rW0qTBmgnWo6743rrrfdjmwPe5HWtU3+eyhB6eP52WywtaRGdadv2HF0bzcObm1OTZyLfH6+R4VJM0P1o9MrX2Ycvzl+umW6YH2t/fGWtJ3tm0VfgH+Czll", "base64"
  T.assert b64find corpus, needle
  cb()
