Legality surrounding reverse engineering protocols? I want to make a product (call it A) compatible with another proprietary product (B). So if I take product B and then reverse engineer the protocol by watching network traffic, I could produce a document describing the protocol. Then, lets say I give the document to another engineer. He implements the protocol based on the document, without himself being involved in the original reverse engineering of product B. Is it legal for me to use that new "green" protocol implementation in product A?
There are a few ways that this could be illegal, but barring those, there is nothing per se illegal in doing what you describe. It could be a TOS/contact/licence violation to sniff the traffic: Use third-party software that intercepts, collects, reads, or "mines" information generated or stored by the Battle.net Client or the Game(s) The protocol could be protected by patent. (U.S. Patent 5,883,893) The use of the reverse engineered protocol could be illegal (fraudulently connecting to a company's server while posing as an authorized client).
It infringes the copyright. It can easily be proved that both XOR1 and XOR2 derive from the source work by XOR-ing the streams with each other. It's just like any encrypted copy: it infringes the copyright, but only those who can decrypt it are in a position to know that it infringes the copyright. The posts on the forum are illegal because they infringe the copyright; it doesn't matter that they are derived works rather than the work itself, just as your drawing of a copyright-protected image infringes copyright because it is a derived work without being the work itself.
Unless you have a legally valid IP right related to the specification that statement is meaningless. When a software license is granted it is based on the copyright of the code. The copyright of the spec. just stops people from copying the spec - it does not protect the information in it. You can restrict copying of the spec. under copyright, you can make up a name for the spec (like USB or Bluetooth) and get a trademark and only allow the trademark use in limited cases(doesn’t stop implementation of the spec), or get a patent that would be necessarily infringed if something complying with the spec was created and used, sold, made, etc. or you can keep it secret and only show it to people who contractually agreed with your terms.
There is nothing illegal with doing this (absent specific contractual terms or industry regulations to the contrary in particular cases, e.g. in the case of export controlled high technology products). This is called operating a wholesale business or operating as a broker. Lots of legitimate legal businesses have this business model.
The legal issues are too black and white to have any meaningful impact on an ethics discussion. The IP belongs to A and B can't use it. A's not planning to build a product around the patent is irrelevant to the law and I do not see it bring up any ethical issue, but some people who do not understand patent law might. There might be ethics issues if A hired Josh with the specific plan to fire him as soon as the application was filed and intentionally misled him about these plans. Another issue might be Josh's duty to not disclose A's confidential information (the application does not become public right away), and Josh's duty to not draw B into developing an infringing product.
I'm not a lawyer, but under the law as it's written, I see two problems: 17 USC 121 allows "authorized entities" to make and publish accessible copies of works. An "authorized entity" is defined as a nonprofit organization or a governmental agency that has a primary mission to provide specialized services relating to training, education, or adaptive reading or information access needs of blind or other persons with disabilities. So if you, as a private citizen, decide to do this, it could conceivably be copyright infringement. You might have to set up some kind of non-profit organization to make it legal. It's also OK (I think) if you make such copies for your own personal use, so long as you don't redistribute them. So far as I can tell, nothing under 17 USC 121 requires the original publisher to provide an "authorized entity" with a copy in any particular format (PDF, paper, or otherwise) for making accessible copies. Basically, the law seems to have envisioned organizations of sighted people purchasing paper copies, transcribing them, and republishing them; not blind individuals doing electronic transcription for themselves. It might still be worth contacting Hal Leonard and asking what they can do for you, but unfortunately it doesn't look like the law requires them to do anything for you. As Nij points out in the comments, this really seems to be a question about the company's policy, rather than the law.
We can't really know until the ruling is made. The Supreme Court might issue a ruling that encompasses all software APIs, or may predicate its ruling on this more specific situation, e.g. that because Oracle's library is so extensive its structure can be copyrighted even if that does not necessarily mean that any individual function signature can be copyrighted. They could also decide based on something unrelated to the heart of the copyright question - skimming through the petition for a writ of certiorari, they could make a decision based on the original implied license from Sun, for example. Hopefully their decision will answer the copyright question of function declarations completely, but it isn't required to.
As you've presented them, I doubt the functions are protected by copyright in the first place. Originality is one of the threshold requirements for copyright protection, and it demands that the work in question be independently created by the author, and that it possess some minimal degree of creativity. If you're talking about programming at a level so basic that the function truly must be created in a particular way, there is no originality in simply following the instructions. And even if there's some wiggle room, but the language you used has likely been independently replicated by many programmers, that's still not original enough to be copyrightable. What you want to watch out for, though, is the possibility that they've been combined into an original arrangement that is protected. I don't know enough about how copyright law is applied to code to say where or how that line is drawn, but my instinct would be that it could be a fairly low threshold.