Fix for the i386 card servers, feel free to integrate these to files in the
v6.00 release zip

-------------------------------------------------------------------------------

Official release newcamd v6.00 full release

-------------------------------------------------------------------------------

Important: Please save this complete release, for future releases, we may
           choose to include only those files, that have actually changed

-------------------------------------------------------------------------------

We noticed, there are still many files around that do NOT comply
to the distribution terms set below, particularly complete images with all
keys inside. We again ask uploaders to remove such files and we also ask
admins to not allow such files on their upload centers.

Further action might be taken in the future, if our rules about newcamd
distribution are continously violated.

-------------------------------------------------------------------------------

It is our firm believe that access to Free-TV is made way to easy for
people at the moment and we are seriously considering disallowing the
distribution of future newcamd releases inside flash images. We have been
following a public policy up until now, because we wanted to provide a free
alternative to the never ending greed of the commerical pirates. But we do
believe however, that we can ask everyone wanting to use our software, to get
out of their TV armchairs and pause the growing of their asses (to quote the
writer of a certain FAQ) long enough to learn how to upload a couple of files
to their boxes via ftp, read the supplied documentation and edit a couple of
keyfiles. Everybody can learn how to do that easily, and we mean EVERYBODY.
We feel that anyone claiming the contrary, is just too lazy to even try.
To sum up, we believe all the emu images and full automatic internet key
downloads at the push of a button are hurting the Free-TV community more then it
serves it by forcing Pay-TV providers to implement stronger countermeasures and
we would ask all image makers out there to rethink their position.

-------------------------------------------------------------------------------

And since we are discussing politics already, some recent news bulletins on
several news services indicated the European Union thinking about forcing Pay-
TV providers to offer their services beyond national borders to anyone who wants
a subscription. We strongly support such a move and we pledge that the emu and
cardsharing facilities in newcamd would be discontinued if Pay-TV providers
would start to offer their services internationally under the same conditions
they offer it to national residents. In particular:

1. same choice and contents of all channel packages (no stripped-down
international subscriptions like Digiturk Euro).
2. same prices as for national customers

It was never the intention of the newcamd Team that people would use it to steal
the services of their national Pay-TV provider (or any other provider they could
officially subscribe to). If and when everyone would be able to officially
subscribe to any Pay-TV package he wants to, under the same conditions as
everyone else and regardless of where he lives, we would feel newcamd becoming
kind of obsolete. The only reason why we make newcamd support emu and card
sharing is to overcome this discrimination by Pay-TV providers to offer official
subscriptions to national residents only.

-------------------------------------------------------------------------------

About Sky NDS

Well, after the gbox team made it public in their usual charming manner, which
is only for their elite group of friends (aka to people that crawl up their
aces) and to people who pay for access to their card sharing network, and after
also a patched cardserver appeared for Sky NDS (which by the way is indeed
patched, we had nothing to do with it, we - so far - never gave away any
cardserver binary supporting Sky to anyone), we feel, there is no point of
holding it back any longer.

We feel however, the gbox team and the person that patched cardserver and gave
it away, so that it finally found its way to the public domain, did not act very
clever for two reasons:

1. Both solutions support card sharing, which doesn't really work for both
   BSkyB and Sky Italia for technical reasons. Anyone, who's tried it over a
   high latency Internet connection or where more than clients shared a card,
   will have noticed, he will get picture dropouts quite regularly. So what's
   the point of releasing something, that doesn't work properly and will only
   piss off the Pay-TV provider and make it introduce counter measures more
   quickly.
2. Regarding Sky Italia: Releasing a cardserver for the NDS cards prematurely,
   this is, while a perfectly good solution for card sharing this provider is
   still working perfectly fine (Seca2). So, while the NDS server so far wasn't
   really needed yet, because Seca2 worked just as well, Sky Italia had time to
   to analyse the existing solutions and come up with a counter measure before
   Seca2 is even deactivated.

We've thought, the camds are around to improve the digital tv experience for
the ambitioned hobbiest, who are discriminated by the Pay-TV providers for not
living in the correct country. But the release of both gbox and the patched
cardserver were certainly counter-productive when trying to keep access up to
such channels for as long as possible.

Of course, we know, that at least the gbox team is more interested in making
money for themselves as for the common good. We know, many of you readers will
object now to this statement, and yes, we've read the latest statement of the
gbox makers too, claiming there's absolutely no money involved and that they've
absolutly nothing against everybody using gbox. The fact of the matter is, this
gbox statement is not believeable whatsoever. For once, we know a guy in one of
the former Yugoslav countries, that has admitted to selling access to gbox
cardsharing (newcamd too possibly). And this guy is always the first person to
have the newest "non-public" gbox releases. We're sorry, but we're not so naive
to believe, that there is even the remote possibility that this could be a
coincidence. And what about that RSA protection of the nds camcrypt in gbox? 
Surely if the gbox team wouldn't have any objections against everybody using
gbox, like they claim, they wouldn't have bothered with such a protection in
the first place. And what about the gbox card sharing protocol? Biggest secret
of all time. We even hear regularly, they change it as soon as someone
"unauthorized" has figured out, how it works. Now, does that sound like the
work of people, who don't care about who's using gbox? Why do we have two 
totally incompatible sharing protocols now? Do you think, we wanted to make
everybodies life miserable by inventing a second, incompatible protocol? If the
gbox protocol had been available, we would certainly not have written cardspider
but instead adapted newcamd & cardserver to use as client/server for gbox
sharing.

You may have noticed, that contrary to the gbox statement, we're not using any
nicknames are to name the people, we're talking about, because even while we're
not agreeing with their actions, we don't want to cause any trouble for them by
naming them. We do ask however, why so many people (board admins etc) believe,
the gbox people must be treated fairly and everybody should comply with their
wishes, while the gbox people go around naming others, possibly causing trouble
for them, which is not very fair of them at all.

Anyway, back to Sky NDS. We've decided to release a solution for BSkyB and Sky
Italia now, because other solutions are public anyway, but we didn't include
cardsharing for those two providers, for reasons explained above. Both providers
are included in betad, so the same restrictions apply to them as they do for
Premiere (no sharing, no EMM blocking). Enjoy it while it lasts, the NDS
camcrypt is very versatile, Sky can very fast make minor changes to it without
any need to change any hardware, and if that happens, don't expect any fast
updates. We have no intension whatsoever, getting into a cat-and-mouse game with
Sky, updating the camcrypt every two weeks or so (and believe us, the camcrypt
is versatile enough to support such a scenario).

"But why didn't you guys at least release a betad for BSkyB before?" we hear
you ask. "There never was another ca system on BSkyB than NDS and I thought
your goal was to improve the digital tv experience for the ambitioned
hobbiest." There are 2 very good reasons for it:
1. As indicated before, Sky can change the camcrypt at any time easily, if they
   wanted to. We wanted to avoid half of the UK going out to buy Dreamboxes to
   watch Sky on, while we know very well, that there is a good chance, it would
   work only for a couple of weeks. The authors of the other solutions didn't
   warn you about this, we feel that we have to.
2. So far newcamd worked only on a very limited number of set top boxes, most
   noticeably the Dreambox (although newcamd works nicely on dbox2 or i386 DVB-S
   cards too, almost nobody, at least outside of Germany, where the dbox2 was
   sold, uses newcamd on these platforms). We didn't want to influence any
   market shares for any of the competing manufacturers with our software.
   Now this isn't a problem anymore, because with V6.00 we've introduced a box-
   independent api, so anyone can write support for different boxes without the
   need to have any source code from newcamd (see below).

-------------------------------------------------------------------------------

Welcome to newcamd V6

This package is freeware. Distribution and usage is allowed only if you
agree and comply to the following rules:

1. For standalone (outside of flash images) distribution, you are NOT allowed
to make any changes to the original ZIP archive whatsoever. Distributions of
newcamd must not include any keys or Nagra ROMs.
2. Distribution of newcamd inside flash images is allowed, if no keys or
Nagra ROMs are included in the same flash image. Full documentation must be
provided in the flash image. Files keylist, rsakeylist, tpscrypt, ppua,
readme.txt and nagraAU.txt must be present in /var/tuxbox/scce
(/var_init/tuxbox/scce on Dreambox), files newcamd.conf, cardserv.cfg and
betad.cfg must be present in directory /var/tuxbox/config
(/var_init/tuxbox/config on Dreambox).
Files in scce must be copied from the original Zip archive, they may not be
changed. Options in config files may be changed, but all the comments must be
left unchanged.
3. Distribution of patched newcamd, cardserver, betad and/or dcd binaries is
strictly prohibited.

Dieses Paket ist Freeware. Weiterverbreitung ist nur unter Einhaltung der
folgenden Regeln gestattet:

1. Das Original ZIP Archiv darf NICHT veraendert werden. Insbesondere duerfen
keine Keys oder Nagra ROMs enthalten sein.
2. Die Weiterverbreitung in Flash-Images ist nur erlaubt, wenn keine Keys oder
Nagra ROMs im Image enthalten sind. Die komplette Dokumentation muss im Image
vorhanden sein. Die Dateien keylist, rsakeylist, tpscrypt, ppua, readme.txt
und nagraAU.txt muessen in unveraenderter Form ins Verzeichnis /var/tuxbox/scce
im Image kopiert werden (/var_init/tuxbox/scce in Dreambox Images), die Dateien
newcamd.conf, cardserv.cfg und betad.cfg muessen ins Verzeichnis
/var/tuxbox/config (bzw. /var_init/tuxbox/config bei Dreambox Images) kopiert
werden. Konfigurationsoptionen duerfen angepasst werden, aber die Kommentare
muessen unveraendert bleiben.
3. Die Weitergabe von gepatchten newcamd, cardserver, betad und/oder dcd
Binaries ist ausdruecklich untersagt.

What new in V6?

We've introduced a documented, set-top-box independent api. This way, the 
newcamd binary has become independent of the set-top-box it is running on.
All the set-top-box dependent i/o calls (to the demuxer, ca or cardreader
device) have been placed into a shared library libcamdio.so. This way, you
are able to use the same newcamd binary on (currently) dbox2, Dreambox and
(new!) Triple-Dragon. All you have to do is pick the correct libcamdio.so
library for your box to go with the generic newcamd binary.

The api itself is documented for other camd developers. That means, other
camd developers, that choose to use the api, can implement their camd on
one of the supported set-top-box and their binary will automatically be
working on the other supported STBs as well. 

But that's not all, if some new linux based STB is released in the future,
independent developers can write their own libcamdio.so for the new STB,
and newcamd as well as all the other emus, that use this api, will
automatically run on their box, without the need to change anything in
the newcamd (or other camd's) binary. Of course only as long as the new
STB uses the same processor architecture for which a camd binary is already
available, but even if it's not, it's much easier just request to compile
a binary for a different processor architecture than to request a whole
bunch of little changes to support the new STB's demux or ca dev apis.

For api documentation see file libcamdio/libcamdio.h


History:

v6.00b: fixed i386 card servers

v6.00:
all binaries: use libcamdio - check for config files, especially newcamd.conf,
              a lot of the old options don't exist any longer
all binaries: support Triple-Dragon
cardserver/cardspider: improve ecm handling, on old versions it was possible
                       for one cardspider client to cause dropouts for all
                       others, when zapping very fast (each zap would have 
                       sent a new ecm request to the cardspider network,
                       possibly blocking requests from others), now new
                       request are sent only after 3 seconds or after the last
                       request from the same client is answered, whatever event
                       occurs first
cardspider: increased the protocol version number, so that network admins can
            force all participants to upgrade to the improved version
cardserver.dreamTriple: add powerup/powerdown modes for Triple Dragon, see
betad.dreamTriple:      readme in the libcamdio/TripleDragon directory
betad: added NDS for Sky Italia and BSkyB
newcamd: changed the path for the scce directory from /var/scce to
         /var/tuxbox/scce (/var/scce would be in the ram disk on Dreambox 7020)
         added via2.4 algo
cardserver/Conax: fix handling of cards that have some maturity rating enabled,
                  cardserver still answers "Can't decode" on protected channels,
                  because there is no way for the user to enter the pin and send
                  this information back to cardserver, but contrary to the old
                  version, at least the card will continue to work now on all
                  unprotected channels after zapping over a protected channel
scce/ecmoverride: removed pmt pid from the config lines
scce/mappings: added mapping for Seca2 SCT


Installation for Dreambox 7020:
Please see the readme in the dmm7020-ipk directory.

Installation for Triple Dragon:
Please see the readme in the libcamdio/TripleDragon directory.

Installation for other STB's:

Copy newcamd.conf to /var/tuxbox/config (dbox2/Dreambox) or /etc (i386).
Copy lib/libcrypto.so.0.9.7 to /lib or /var/lib directory
Copy the correct libcamdio.so.0 for your box to /lib or /var/lib
Check the config file and alter it for your needs.
Copy keylist, rsakeylist, ppua, tpscrypt, priority, mappings, nagra*.bin to
/var/tuxbox/scce
Enter keys into the keyfiles.
For i386 install DVB-S driver with changed root file.
Dreambox & dbox2 don't need an additional driver. 

dbox2 users should deactivate hardware section filtering on API3 drivers, for
some reason, which illudes me, the demuxer keeps crashing from time to time
when using newcamd with hardware section filtering turned on.

Changes to Zapit/Enigma:

No changes are necessary in recent Zapit or Enigma sources. Just use newcamd
instead of camd2 or dccamd. In fact newcamd is designed specifically for use
with unchanged zapit/Enigma. Any complaints about newcamd problems when running
in so-called emu images which feature other emus will be ignored. If newcamd
works with unchanged zapit/enigma, it works period. Everything else is the
problem of the image builders.

Killing newcamd

This seems to be a big problem, from what I can read in certain Internet
forums (Posts like "newcamd never saves any AU keys", well if you kill it
with the -9 option, you're not giving newcamd a chance to save anything).
So, this is, how it's done right: newcamd, during startup, always creates a 
file /tmp/newcamd.pid. Kill that pid (pid = process id) and newcamd will
shut down orderly. For example: kill `cat /tmp/newcamd.pid`

vdr-Anpassung:

Mitgeliefert wird ein Patch fuer szap aus dem linuxtv-dvb-1.0.1.tar.gz
Treiberpaket. Die darin enthaltenen camd_stop() und camd_start() Routinen
koennen auch in den vdr uebernommen werden. Saemtliche Funktionalitaet, die
auf das ca-Device zugreift, ist im vdr zu deaktivieren, newcamd benoetigt
exklusiven Zugriff auf das ca-Device. Anstatt der PMT Pid kann auch 0
uebergeben werden, da mein vdr Beta-Tester meinte, die PMT Pid sei an der
Stelle im vdr Code, an dem man den newcamd nach dem Zappen starten moechte,
etwas schwierig zu ermitteln. In diesem Fall versucht newcamd die PMT Pid aus
der Transponder PAT anhand der uebergebenen Service Id zu ermitteln. Nicht
vergessen, einen Treiber mit gepatchtem Root File zu verwenden.

mehrere DVB-S Karten:

Ist mehr als eine DVB-S Karte im Rechner eingebaut, muss fuer jede Karte ein
eigener newcamd gestartet werden. Fuer diesen Fall kann in der Kommandozeile
Pfad+Name des newcamd.conf Files und die Adapternummer angegeben werden (0-3).
"newcamd /etc/newcamdAdapter1.conf 1" startet zum Beispiel einen newcamd fuer
die zweite Karte im Rechner und nutzt /etc/newcamdAdapter1.conf als Konfigfile.
Angesprochen werden die einzelnen newcamd dann ueber /tmp/camd.socket0 bis
/tmp/camd.socket3 (siehe szap Patch).

Faq:

Question: On Dreambox cardserver never (or seldom) detects inserted cards.
I have to reboot box with cards inserted for cardserver to detect anything.
Answer: Early Dreambox mainboards have a design flaw, resistances R5003 and
R5007 have been fitted with 10 kOhm resistances instead of the correct 2.2 kOhm
resistances. You need to replace them both with the correct ones. You find them
just behind the card readers.

Question: Why is there no (or: Will there ever be) emu for Neotioncrypt porn
channels?
Answer: No. Those porn channels can be subscribed from every country, so bugger
off :) (maybe first take a look at newcamd policies at the top of this file)

Question: Why is the NDS support in betad only for BSkyB and Sky Italia? I
live in America/Australia and would like support for our local providers too.
Answer: Unfortunately all NDS cards from different providers use different 
communication parameters (different ATRs, different baudrates, etc). We don't
have NDS cards from your provider, so we can't implement them. Also the EMM
handling seems to be different for different NDS systems. We can't make newcamd 
support systems, we can't receive.

Question: Our Romanian Conax card doesn't work with cardserver, apparently the
ATR is different from other cards and cardserver doesn't recognize it.
Answer: We've actually read such postings on satellite tv related boards. While
it is nice, that you've noticed some difference, we never saw any posting
talking about what exactly the difference is. Without posting a log of the card
being used in a working cam or stb (and make sure to include all from ATR to
the first ECM and EMM being sent, but remove your card number), it's the same
problem as in the FAQ above. We don't have the card and without any logs we
surely can't and won't implement it.

Question: Can you add something like reverse lookup for users that is based on
DNS to verify the user is who he says he is?
Answer: No. Such a feature does not increase security whatsoever. Any user,
who can share his cardserver access account with other people, can just as 
well share username/password of a dyndns account with other people. Since
those accounts are free, they can even create an extra account for that very
purpose. So, trying to check the identity of a user by doing a DNS lookup really
is useless, it just wastes network bandwidth.

Question: Can you create a client that is based on PC that drives Season
interface?
Answer: No. Why not? Because we don't personally use it. That's why we made the
protocol specification available. You can program such a client yourself, if you
need it, all the necessary information is available.

Question: After a connection to a card server is lost, I have to restart
newcamd to reestablish it. This sux. Do something about it!
Answer: No, we won't. YOU do something about it! There is camdcmd provided
in the official newcamd.zip distribution, the wanon command will do exactly
that, rebuild all the connections that are designated as "wan" in newcamd.conf
(cardserv.cfg, cardspider.cfg). Start using it! Go make a plugin if calling it
via telnet is too much to ask.

Question: But, I want it to reconnect automatically without user interaction.
Answer: That makes no sense. newcamd<->cardserver uses the tcp protocol,
which means, if a connection is lost, there is something seriously wrong with
your network between newcamd and the cardserver. So an immediate reconnect would
almost certainly fail. A reconnect attempt after say X minutes makes no sense
either, the user will have long zapped to another channel or attempted the
reconnect manually by then. And if you did record something unattended it
certainly makes no difference, if only X minutes or the whole remaining
part of the program are lost. The recording is screwed up either way.
Bottom line, there will be no automatic reconnect for direct newcamd to
cardserver connections.

Question: But, if I restart cardserver, I always have to restart newcamd as
well or use camdcmd to reconnect.
Answer: No, you don't. Setup reverse login for the cardserver<->newcamd
connection.

Question: You're a bunch of idiots, I still WANT my automatic reconnect.
Answer: Then use cardspider to bridge the connection that logs out all the
time. cardspider does attempt to reconnect to peers, but only after ALL peers
are lost (offline). It also uses udp protocol which means in bad internet
connections, you will loose only single control words, but not the connection,
the picture will come back after the communication between the peers works
again.

Question: If I connect a Phoenix interface to the serial port of my Dreambox
7020, the box won't boot any more, it always stops, the display reads 
"*** SERIAL MODE ***".
Answer: We've tracked this behaviour to the 2nd stage bootloader, since its
source is available, we're sure, someone will patch it sooner or later :)

Frage: Gehen mit cardserver die neuen Premiere oder Dreamcrypt Karten?
Antwort: Nein. newcamd enthaelt auch weiterhin keinerlei Funktionen, die das
Entschluesseln von Premiere ohne gueltiges Abo ermoeglichen, also auch kein
Control Word Sharing ueber Internet fuer Premiere. Gleiches gilt auch fuer
Dreamcrypt. In der dbox2 werden die neuen Premiere Karten selbstverstaendlich
im normalen CAM unterstuetzt.

Frage: Wie kann ich dann mit der Dreambox oder einer DVB-S Karte und vdr mein
Premiere Abo nutzen?
Antwort: Es gibt eine spezielle betad Version, die die neuen Premiere Karten
unterstuetzt. Diese kommuniziert im Gegensatz zu cardserver nicht ueber
TCP/IP. Also auch hier kein Control Word Sharing ueber Internet.

Frage: Welche Kartentypen werden von betad unterstuetzt?
Antwort: Getestet wurde betad mit S01 und S02 Karten. Prinzipiell sollten alle
01er und 02er Typen funktionieren, also auch K01, K02, P01, P02, A01, A02.
betad ist nicht geeignet fuer die 03er Kartentypen S03, K03, P03, A03.

Frage: Kann ich mit Hilfe von betad und Multicam auch eine S01 (K01, P01, A01)
Karte an der dbox2 benutzen?
Antwort: Ja.

Frage: Ich habe zwei Premiere Abos mit unterschiedlichen Paketen. Kann ich diese
kombinieren?
Antwort: Ja. Mehrere betad auf unterschiedlichen seriellen Ports starten und
alle Server in newcamd.conf anmelden (uds 0, uds 1, ...). dbox2: Erste Karte
in dbox CAM einlegen, zweite Karte in Multicam mit betad.

Frage: Ich habe ein Premiere Abo und meiner Bekannter hat ebenfalls eins, beide
mit unterschiedlichen Paketen. Kann ich diese kombinieren?
Antwort: Nein, siehe "Gehen mit cardserver die neuen Premiere Karten?".

Frage: Wenn ich ein Phoenix an die serielle Schnittstelle anschliesse, bootet
die dbox2 nicht mehr, im Display sind die Inforamtionen vom Debug Modus und
volle Balkenzahl zu sehen.
Antwort: Das ist eine Debug Funktion des Beta Research Bootloaders. Wenn beim
Booten bestimmte Pegel an der seriellen Schnittstelle anliegen, wird der
Bootvorgang angehalten. Mir ist keine Abhilfe bekannt, ich empfehle daher den
Standby-Modus von Neutrino oder ein MultiCam, falls noch nicht vorhanden.
