Я пытаюсь понять, как сгенерировать параметры для iTunes Music Store (iTMS) и что они означают. Пока что я могу делать все остальные обычные вещи, такие как вход в систему, просмотр информации об учетной записи, но при покупке, похоже, есть какой-то криптографический элемент (или просто то, чего я не вижу).
Например, iTunes 9 при покупке случайного бесплатного приложения выдает:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>guid</key>
<string>4225D067.2C503B42.0DE019C0.09C96165.C4AEA83B.2AFF3A27.37A7327A</string>
<key>kbsync</key>
<data>
AAEAAOuJNWEY3t2cfDs71eXYbxmcvyB/ZB8PABQSjnY0zvL9ofILWBGfLd4Z7HnI9s3Y
akaVt+3xOW9E9Arva1RLzfX5ONpclt5s2IW/rXOgDnX6/AmacJL4UbnvvLR7mUtKZVNh
aOlKGk7dNqMHnZUiIkLRSS+sOJ2KIR2OT6kZ02tlDYv/bmI9Zr5G2HUsG1TZRQ==
</data>
<key>machineName</key>
<string>MORPHEUS</string>
<key>needDiv</key>
<string>0</string>
<key>price</key>
<string>0</string>
<key>pricingParameters</key>
<string>SWUPD</string>
<key>productType</key>
<string>C</string>
<key>salableAdamId</key>
<string>314765784</string>
</dict>
</plist>
Я понимаю, что большая часть этого исходит от action-params или buy-params (для этого примера это productType=C&salableAdamId=314765784&pricingParameters=SWUPD&price=0&ct-id=14
), и GUID является постоянным (для моей машины), однако я не могу понять, что Поле kbsync имеет значение.
Я надеялся, что кто-нибудь взглянет и быстро это решит, но я не смог.
Другая информация, на которой она также может основываться:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>signature</key><data>kqUFBdQnA0MPzrWKAGcsBshzc5XnLLm9TO+0l0jyZTJYYFiIsRc7m97IYyCCkUt/X5l+ObKfc+06Z5sgu/tAvlA1IE6LKKCEfZQVihFoYeihff3vf6lC821tPuuxuQdReBxyjHy1n94twf2iS8uRR3LoZQhQxpRdh5vDNrHwXOg=</data>
<key>certs</key>
<array>
<data>MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQQFADB+MRMwEQYDVQQKEwpBcHBsZSBJbmMuMRUwEwYDVQQLEwxpVHVuZXMgU3RvcmUxGjAYBgNVBAMTEWlUdW5lcyBTdG9yZSBSb290MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJQ3VwZXJ0aW5vMB4XDTA3MTAwOTIxNTkxNFoXDTA4MTEwNzIxNTkxNFowgYExEzARBgNVBAoTCkFwcGxlIEluYy4xFTATBgNVBAsTDGlUdW5lcyBTdG9yZTEdMBsGA1UEAxMUaVR1bmVzIFN0b3JlIFVSTCBCYWcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlDdXBlcnRpbm8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOLMu/eV+eSLVEGtn536FkXAsi/vtpXdHpTNS9muEVlvlkubKXdPDd5jV5WnQpAKY4GZrBn8azP9UKBd85nhIb5nqHQHCmH5DpBK9GZPFpoIdXguJSre8pZwQaYEXQGtTt3nXvk9k8OHs5W/9xFLuD7fpkKSIl+0KLPFULdyEtlvAgMBAAGjQjBAMB0GA1UdDgQWBBTd4gDjfN3LFr3b5G8dvUTpC56JZTAfBgNVHSMEGDAWgBSw2uF/qItKaoFdDKGEVkYeau/lzzANBgkqhkiG9w0BAQQFAAOCAQEAIDpkK1CqTNyl7SEZWvUTRYPdZzn9Y4QjnbSQ6hFkF/PClJkXn3TzMW3ojnxNLphKZxOY53s6D/Hf1B5UX2bJDAnfQ/W8d10SPubGJ1FnUZK8KaKeOzAgks5ob9dnOUe4CZKhZ5FyggIJfgd38Q0s8WF474j5OA/5XRPczgjt+OiIfzEVX5Xqpm1TU7T4013eHze5umqAsd9fFxUXdTC+bl9xdj5VOmqUUfOivoiqiBK2/6XAaDIFF/PEnxVou+BpqkdsyTZz/HiQApve+7NONqS58ciq3Ov+wivpVJKxMyFgcXFWb/d2ZTc04i+fGf0OA4QmkSRcAZOxQkv0oggtTw==</data>
</array>
</dict>
</plist>