use a messy loop instead of a deeply nested async fn chain (fix #1523)
Merge pull request #1765 from jlipps/fix-max-stack

fix max call stack in keytool zip issue