Credit Card Encryption through RFC calls to third party software

Dear All,
   I am working on credit card encryption in CRM. At our firm, we have SAP R/3 which is integrated with third party server for performing credit card encryption using RFC calls. We want to perform similar thing in SAP CRM. I was looking into SAP standard mechanism to perform encryption and it seems they use class CL_PCA_SECURITY -> External Encryption to encrypt credit card. Are there any BADIs available for me to change behaviour of this call and call our listeners (for third party server) instead of what standard SAP is calling. Here is what in the code:
call C function 'SSFENVELOPE'
  CALL 'SSF_ABAP_SERVICE'                                 "#EC CI_CCALL
       ID 'OPCODE'             FIELD   SSF_OPCODES-ENVELOPE
       ID 'SECTOOLKIT'         FIELD   SSFTOOLKIT
       ID 'STRFORMAT'          FIELD   STR_FORMAT
       ID 'STRFORMATL'         FIELD   STR_FORMAT_L
       ID 'BINENC'             FIELD   B_INENC
       ID 'IOSPEC'             FIELD   IO_SPEC
       ID 'OSTRINPUTDATAL'     FIELD   OSTR_INPUT_DATA_L
       ID 'STRPAB'             FIELD   STR_PAB
       ID 'STRPABL'            FIELD   STR_PAB_L
       ID 'STRPABPASSWORD'     FIELD   STR_PAB_PASSWORD
       ID 'STRPABPASSWORDL'    FIELD   STR_PAB_PASSWORD_L
       ID 'OSTRENVELOPEDDATAL' FIELD   OSTR_ENVELOPED_DATA_L
       ID 'CRC'                FIELD   CRC
       ID 'OSTRINPUTDATA'      FIELD   OSTR_INPUT_DATA-SYS
       ID 'RECIPIENTLIST'      FIELD   RCPTAB-SYS
       ID 'OSTRENVELOPEDDATA'  FIELD   OSTR_ENVELOPED_DATA-SYS
       ID 'STRSYMENCRALG'      FIELD   STR_SYM_ENCR_ALG
       ID 'STRSYMENCRALGL'     FIELD   STR_SYM_ENCR_ALG_L.

Vivek,
While it may be technically possible to accomplish what you are suggesting (leveraging the encryption functionality provided by your third-party server) I would recommend strongly that you consider a token-based solution instead.  You can learn more about tokenization on this [blog|/people/eric.bushman4/blog/2009/01/02/tokenization-as-a-means-of-securing-credit-card-numbers ].
There are many reasons why a token-based solution is superior to using application specific encryption (as outlined in the blog), but specifically in the case you describe where an SAP CRM and SAP R/3 are involved there is one specific reason to consider:
When order data is replicated between SAP CRM and SAP R/3 the systems will attempt to decrypt the credit card numbers prior to passing the data and therefore the RAW card number will be stored in the middleware logs.  This is especially true when using SAP's native credit card encryption logic in the CRM and R/3-ECC applications. 
For example, let's say a user enters a credit card as the form of payment during Order Creation in CRM.  At Order Save the system will send the credit card information to your third-party server for an authorization attempt and the results will be returned to CRM.  As the Order is saved and committed to the CRM database the standard SAP encryption functionality can be leveraged to encrypt the card data.  Based on your middleware configuration, eventually the Order data (including the credit card details) will be sent to the R/3 or ECC system.  In order to do so the CRM system will first decrypt the card number meaning that the CRM middleware logs will contain RAW card numbers.  When the Order is created in R/3 or ECC the native credit card encryption functionality in R/3 or ECC could be used to encrypt the card number prior to the Order being stored in the database.
Should you choose to use a third-party server you may find, depending on how the third-party vendor's logic works in SAP, that you must utilize a BADI to decrypt the card number in CRM so that the CRM middleware has a RAW card and so that when the Orders is saved in the R/3 or ECC system it can be encrypted again with the third-party vendor solution.  In either case the RAW card number is present in all systems for some period of time and potentially stored in logs thus exposing your systems to risk and greater PCI audit scrutiny.
Eric Bushman
VP, Solutions Engineering
[Paymetric|https://www.paymetric.com]

Similar Messages

  • Credit card encryption not working

    Hi CRM - Payment card experts,
    We have a issue, where in the CRM is interfaced with Paymetric for credit card processing. As per the design, the credit card encryption should work. But, i see no encryption happening in the crm order.
    Please suggest, where could  be the problem.
    Thanks.
    Regards,
    Phaniraj

    Hi,
    Can you please be more specific with your problem.
    Can you please let us know where exaclty you are doing the card number encryption(BAPI/BADI/RFC/FM).
    Please let us know if you are calling some third party for doing this encryption.
    If you are doing the encryption internally(not calling any external third party) than you can check by debugging whether your encryption code is getting called or not,
    If its a third party validation/encryption than check for the rfc connections.
    If you want to write the new logic for encryption than write it in the same place where card number validation(Luhn's formula credit card validation) code is written.
    Regards,
    Arshi
    Edited by: Arshi Arshi on Jun 15, 2009 9:38 AM
    Edited by: Arshi Arshi on Jun 15, 2009 9:42 AM

  • Credit card payment through iReceivables

    Hi All,
    I am lookign at a way to test credit card payment through iReceivables without interfacing to any actual payment gateways. Basically I want to see the data flow in IR when a payemnt is done using IR using IReceivables.
    It will be really appreciated, if any one can suggest a way to stimulate the Credit card payment in IR without actualy integrating to payment gateways.
    Regards
    Deepak

    If you have entered the payment method for the check in the ICICI vendor master data, and have selected that payment method in parameters of F110, then F110 will pay that vendor, provided you have already completed the required configuration and have assigned the check form  of this payment method in FBZP.
    Thanks
    Ron

  • Credit Card Encryption & System Copy

    Hi All,
    We have done a system copy from PRD back to QA (credit card encryption is activated on both servers). The customer would like to be able to read the PRD data including the credit card details but of course the QA system can only de-crypt its own data and not the PRD data. Is there a way of de-crypting the PRD data that is already within QA and then re-encrypt using QA key?
    I didn't set up the original encryption so I am learning about this as I go.
    Thanks.

    >
    Natalie wrote:
    > Well, I have advised this to my customer, but at the end of the day the customer owns the system and he wants to be able to see the Productive data in the QA system.
    Well, the upper management of this customer is finally (legally) responsible to ensure that access to this sensitive data is controlled and restricted (no matter where it is stored - if the data is replicated then all storages need to be protected with the same strong mechanisms).
    Usually access to non-productive systems is much easier (less restrictive). So, the customer is taking quite a huge risk that this sensitive data might be less protected than (legally) required.
    Aside of legal consequences the loss of trust / reputation might impose an even higher (business) risk. I would consider twice ... (but I'm not the CEO nor the CIO of that customer) ...
    PS: for your own protection I'd strongly recommend that you inform the customer on those risks (in written form) and let him sign-off that you've warned him ... (otherwise you might be kept liable as well - if being engaged as adviser / consultant).

  • Send data to ECC table through RFC Call function from SAP B1 via  b1if

    Hi,
    I have created scenario in B1if which triggers from SAP B1, now I have to send this data in to ECC table, so I have created scenario for that with inbound SAP B1, outbound void and in process RFC Call atom is there but I am not getting data in receiver and also how to write xml to send data in RFC function. Function for RFC has configured from ECC end and have access of that function.
    So please help me to send data to ECC table through RFC Call function from SAP B1 (9.0) via b1if
    Thanks

    Solved by my own.

  • Has anybody have problem with their credit card going through when it is good?

    has anybody else having problems with their credit card going through when it is good?

    Each time that you add or change your credit card details on your iTunes account a small temporary store holding charge may be applied to check that the card details are correct and valid and that it's registered to exactly the same name and address as on your iTunes account - it should disappear off your account within a few days or so.
    Store holding charge : http://support.apple.com/kb/HT3702

  • I dont have a credit card how can i buy the adobe photoshop software without it

    i dont have a credit card how can i buy the adobe photoshop software without it

    You could use a pre-paid debrt card. and purchase a one year prepaid plan for $120.
    Prepaid
    Payment
    You will be charged the fees stated at the time of purchase. As soon as we have received full payment, your paid membership will begin.
    Renewal
    The price is valid for a full 12 months. After that, we'll renew your contract automatically unless you cancel. The price is subject to change, but we will always notify you beforehand.
    Cancellation
    We'd hate to see you go, but if you cancel within the first 30 days, we'll give you a full refund. If you ever need to cancel, just call Customer Support.

  • Reading a line from a third party software using call dll function.

    Hi,
    I am using a third party software in Lab VIEW.
    I am having trouble using one of the functions defined in the dll.
    I have the VI attached here, As u can see in the VI I am not sure how to use the function
    LCOM_MasterGetLine in the fourth sequence.....
    This has three parameters and they are
    (int ID,char*Buffer,int Length)
    What basically happens with this function is this...
    /* ROUTINE LCOM_MasterGetLine
    It Reads line of maximally Length characters from Slave ID into Buffer and the parameters are
    * ARGUMENT(S) ID ... Slaves ID
    * Buffer ... Where do you want chars (at least Length+1 in size)
    *Length ... How many at most (should be less than LCOM_MAXLEN)
    Can
    any one help me how to define the input parameters for this function, for example in the fourth part of the Vi attached here.
    What I understand from the function is that, the third party software when it sends a line, that line is stored in the input parameter...buffer ...that is defined to the dll.
    Can any one help me how to then read what line has been sent from the third party software.
    I am including the dll file and also the header file here.
    Thanks a lot,
    Ajit
    Attachments:
    New_Folder.zip ‏30 KB

    One problems with your solution:
    LCOM_MasterGetLine(int ID,char*Buffer,int Length)
    You should allocate a buffer large enough in LabVIEW and pass it to the Call Library Node. The dll function needs som space to actually scribble in whatever it wants to do.
    Check out the attachement this should more or less be what you will need.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions
    Attachments:
    ex.vi ‏45 KB

  • How to call third party software from Ecc6 using ABAP

    Hi all,
    I need to execute a third party software using abap coding .
    The software converts doc to pdf, the input from ecc6 would be the file path.
    I need to do this using ABAP.
    thanks
    ziv.

    Hi Ziv
    You can use METHOD cl_gui_frontend_services=>execute
      EXPORTING
        application            = <<<.exe file>>>
        operation              = 'OPEN'
    to run .exe files
    Best Regards
    Yossi

  • SAP Graphics + third party software

    Hi,
    We want to use a third-party software www.cardfive.com for printing employee cards. I think it would be simple to get the data from SAP tables. What i would like to know is how to get the images (uploaded via SE78) into cardfive. Will they be in binary form? Which table is this information stored in?
    I searched previous posts of similar topics but could not find a clear solution.
    Thanks and regards,
    Zubair

    Thanks Raja, the function module works. Now I have to make the return value (binary) available to the thirdparty software. Is it possible to do this through a view? i.e., is it possible to add a field in the view for which i can call this function module.
    The other option i was trying is to save the return value in a custom table (infotype). I added a field (BINIMG) in the table and called the function SAPSCRIPT_GET_GRAPHIC_BDS
    in the module pool of the infotype. But i get the following error:
    <The type of "L_CONTENT" cannot be converted to the type of "PA9201-BINIMG">
    What type should this field be in order to be able to store the return value from the function? I tried component type SDOK_SDATX but then table gives an activation error:
    <Field BINIMG (Length >255 for RAW only allowed for non-DB tables)>
    Any suggestions?

  • Sap integration with third party software

    hey all,
    we are actually trying to integrate sap with EAI( IBM WEBSPERE third party software) and here date needs to flow from EAI - SAP.
    and we have done that through BAPI and in the EAI we got a message saying that the data base has been created but infact when i am trying to check the same in my sap screen am not able to find it i have also checked the database table but its not available .
    do anyone has any idea as to where do we exactly go and search for a particular data once its transferred from a third party software????
    any help is highly appreciated
    Thanks & Regards,
    Vinila Kanakala.

    COMMIT WORK is necessary after most BAPIs. What you describe is usually a result of calling BAPI without COMMIT WORK. The message tells you that document was created, but when you look into database, the document is not there.
    I'm not sure how to resolve this in case of the 3rd party software though. Maybe instead of just using a plain BAPI you will need to write a custom function module, which will capp BAPI and do COMMIT.
    Hope this helps.

  • Is there any third party software for itunes that will do this:

    Is there any third party software for itunes that will organize the browser window. Ideally I would like the third browser window (album name) organized by "main albums" "compilations" "bootlegs" "singles"
    It would look like this for the Beatles
    Main
    1963 Please Please Me
    1965 Help
    etc.
    Compilations
    1970 Red Album
    1990 Greatest Hits
    etc.
    Bootlegs
    1985 Ultratrax 1
    etc.
    CD Singles
    1999 Whatever
    This info would be marked on either the info or option tab when labeling.
    If this has not been made, one of you nerds should make it, it would be great and you could charge $3 for it and I buy it. and so would 100,000 other people.

    If you haven't already, try looking through the Apple Downloads specifically for iTunes.
    http://www.apple.com/downloads/macosx/ipod_itunes/
    There might be something there that is at least similar to the app your looking for.
    edit: There is one shareware that is an iTunes plugin called Multi-tunes. With it you can create multiple iTunes libraries, one library called "Main" one called "Bootlegs" etc, and Multi-Tunes will allow you to quickly switch between them from within the iTunes window. Not exactly what your looking for but close.
    http://www.apple.com/downloads/macosx/ipoditunes/multitunesdavidcaldwell.html
    Message was edited by: Zookalicious

  • Problem installing third party software

    I have encountered an issue whereby on trying to install downloaded upgrades to third party software I am asked to insert a disk entitled with my user name. At first I put this down to dodgy software, but have now had the same issue with installing Adobe Acrobat Reader 9.0. The installation software appears to be something called iNosso.
    Essentially the installation gets as far as stating "This software was successfully installed" but before coming up with the summary window comes up with:
    *Please insert the "username" disc to*
    *continue installation.*
    You have chosen to install software that requires this
    disc.
    (username isn't actually shown what is shows is presumably the local name I have given to the computer).
    No such disc exists and have tried the original installation discs for 10.5 but to no avail. I end up force quitting the installer but am concerned that by doing so I may corrrupt the installation and build up problems for myself going forward.
    Has anyone else encountered this issue and if so is there a fix?
    Thanks in advance.

    Allan, I had hoped not to have to go through the steps you suggest as one of the reasons for doing Migration Assistant was to avoid re-installing all my applications and all the relevant license information. Also note that my old apps are running fine it is just third party installers that appear to be the issue. As a test I ran the Apple installer loading some additional apps that came with the computer with no issues. I would also add that all my applications old and new appear to be running without issue. Indeed even those apps affected by this installation issue (incl Acrobat Reader 9.0) seem to run normally so it does appear to be an annoying glitch in the installation that simply stops the automatic completion of the process.
    My nervousness however is that something more sinister is going on in the background that I am not aware of that may affect the performance of the computer going forward.
    However from both yours and Barry's comments it would appear that this is not a common fault therefore is likely to be peculiar to the way I have set things up so in order to resolve I will have to try either re-installation of everything per Barry or a re-installation of apps as you suggest. Now I just need someone to find me the time!!
    If anyone else has come across this issue before and found an easier resolution I would be eternally grateful. Thank you Allan and Barry for the speed of your responses and your suggestions.

  • Connecting to third party software from R/3

    Hi Interface Gurus,
    I have to communicate with a software program lying on AS400(i series) system from R/3. Please let me know the process i need to follow to talk to this software.
    It would be of help if you can suggest how and what are the settings and steps i need to take to make a RFC call to this program from R/3.
    Thanks in advance
    Rupendra

    Hi Rupendra,
        In order to communicate with a third party software, you need to establish a connection first and then it can send and receive the messages.
    For all these settings to be done you need to contact your Basis person, who will setup the RFC destination and sender details and other basic needs.
    Hope it helps!!!!
    Do not forget to assign points, if helpful.
    Amit

  • Real Time Third Party Software Integration

    I posted this in the PI forum and it was suggested to post it here as well.  I am new to SAP but have worked with PeopleSoft and MS Dynamics AX for several years.  My company is implementing FI/CO and our partner is telling us that we will interface our third party application via flat files that are scheduled.  We are use to running in a real time environment so this is a little hard to swallow.
    Here is an example of what I am trying to do:
    Our third party software will be the starting point for customers. When a new customer is created we need to create that customer in SAP as well (for use with AR). Currently we open a connection to the existing financial application, verify that the customer does not exist and insert the data into the table.
    We all agree that we do not want to write directly to the SAP table(s).
    What we would like to do is when the user saves the record in the third party app, open a connection to SAP, pass the data to the BAPI, wait for a return code then complete the transaction.
    The third party application is written in PowerBuilder 11 and is able to connect to most any database, talk .Net, and call external API's.
    Please advise if this is possible and if so, a link to an example would be great.
    Thanks,
    Scott

    You may use RFC protocol to connect to SAP system. You download RFC library from download center and install it on your third-party system.
    Check threads.

Maybe you are looking for

  • How I retrieve a purchased app that was taken down?

    Hello. I would like to discuss with this problem that I have just encountered. Recently, I've chosen a back up storage and then iCloud was restoring my iPhone. There was a link of the app showing that it was there then suddenly it vanished off the iP

  • When creating PDF from web page why does text appears as strange font not readable?

    I am using Acrobat Standard, ver. 9.5.5.  Frequently if I save a web page on either Firefox or Internet Explorer by printing to my Adobe PDF driver, much of the text is rendered in a strange font rather than in the font that appears on the web page. 

  • Illustrator CS5.1 crashes when changing fonts

    Hoping someone can please help!! Every time I try to change fonts in Illustrator CS5.1, without fail it crashes. I'm on a macbook pro with retina display, OSX 10.9.4 and I have tried uninstalling then reinstalling the program and downloading the Adob

  • How to refresh the content of an external file

    Hi guys. I need to use an external file, no matter the extension(txt .xls .xml .mdb .csv) in the oracle BI rpd. I Use this file like a center table in my star schema and this file need to refresh frequently. How i can see, dynamically, the changes in

  • Final Invoice checkbox changed with BBP_PD_PO_UPDATE

    Hi!! I'm trying to change the final_inv and final_entry fields using the BBP_PD_PO_UPDATE but I can't see my changes!.. Here is my code!      CALL FUNCTION 'BBP_PD_PO_GETDETAIL'         EXPORTING           i_object_id     = t_file-ebeln           i_w