How is the digest value generated???

I'm sending this soap message to the server:
<?xml version='1.0' encoding='utf-8'?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-29784916">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<ds:Reference URI="#id-32207230">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<ds:DigestValue>Iy8TOsjF065HPdu+q99l0CrC/Mo=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>I6ruBXc+mTx6cooaOEWIz2rfuCzbftNdq2jH6b9DtJLPnA8l0bUHU4X52QT2OkuyxnAtUkbXX669Mjw/dC3Onl0Q3cubzr99gbpr13PRRmbVxwzG16xAWYwplP0fz1eN3ny6zhY7n3g7rsQZP0v6eI+NYDrIfRC5l6PQsS4ypQg=</ds:SignatureValue>
<ds:KeyInfo Id="KeyId-30076848">
<wsse:SecurityTokenReference xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-4070693">
<wsse:KeyIdentifier EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary" ValueType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0#X509v3">MIICTjCCAbcCBGWwROAwDQYJKoZIhvcNAQEFBQAwbjEWMBQGA1UEAxMNTWF0amF6IEF1ZmxpYzEQMA4GA1UECxMHRGlwbG9tYTEQMA4GA1UEChMHUHJlYXRvcjEPMA0GA1UEBxMGTGl0aWphMRIwEAYDVQQIEwlTbG92ZW5pamExCzAJBgNVBAYTAlNJMB4XDTA4MDQxOTA3NTc0MloXDTE0MDQxODA3NTc0MlowbjEWMBQGA1UEAxMNTWF0amF6IEF1ZmxpYzEQMA4GA1UECxMHRGlwbG9tYTEQMA4GA1UEChMHUHJlYXRvcjEPMA0GA1UEBxMGTGl0aWphMRIwEAYDVQQIEwlTbG92ZW5pamExCzAJBgNVBAYTAlNJMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDFYqihFyyLgmDcyXIFNgAqrkv75UlgbQjexG6i9W0QlQfUk2nDbcODy/wQtxTTUDlQ/9wxqMFQmcXOHzIaMeUnuwZ7EPG4YFsDouGcqa8PenZ1aJeb4PTPnMyyskOH1q/9uWcmA+dnDQzLepSuJh/qlNJTsXbXyAjakGNwBunSiwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBALFnsD0aVXrH6BiaImDL67jTBlYBgXpF1wtFVO6u+osnb/4f/ZnsB1iD7/Ujcf9QOBRaAYnbUWItL6QD8KCDhGPcz2cs/yF3ULU/QWs38lGhDfxNg+mQ9KQuyXeKgkBOCFqvStYoT2ToCRXAsObLN4Jn/Pn1T0yujBAaQutJGl5j</wsse:KeyIdentifier>
</wsse:SecurityTokenReference>
</ds:KeyInfo>
</ds:Signature>
<wsu:Timestamp xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="Timestamp-11474887">
<wsu:Created>2008-05-23T16:15:16.405Z</wsu:Created>
<wsu:Expires>2008-05-23T16:50:38.405Z</wsu:Expires>
</wsu:Timestamp>
</wsse:Security>
</soapenv:Header>
<soapenv:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-32207230" />
</soapenv:Envelope>
How is this digest value computed "Iy8TOsjF065HPdu+q99l0CrC/Mo=" ??
Is this value taken "id-32207230" -> digest("id-32207230") = "Iy8TOsjF065HPdu+q99l0CrC/Mo="
I know that the value is taken through reference URI. How is this value computed in my case?
Please help! Thank you!

The problem, is that you have assumed what the results of C14N looks like without actually doing it.
If you have bothered to perform a C14N on the <soapenv:Body> block, you would find that the block becomes this:
<soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-32207230"></soapenv:Body>
See what's missing? Now, put this as a single line in a file, run your favorite SHA-1 program to generate a hash on this file you'll get in hex string format:
232F133A C8C5D3AE 473DDBBE ABDF65D0 2AC2FCCA
Which, in base64 is exactly "Iy8TOsjF065HPdu+q99l0CrC/Mo=".
You can put "Iy8TOsjF065HPdu+q99l0CrC/Mo=" in a file, then use "openssl -base64 -d -infile <the file> -out <output file>
Then use a hex editor to open <output file>, the content is 232F133A C8C5D3AE 473DDBBE ABDF65D0 2AC2FCCA
If you wish to learn how things exactly works, I'd strongly recommend downloading the source code from Apache XML-security project. The "CanonSubTree.java" sample is exactly what this is.

Similar Messages

  • Psd file format specification how get the pixel values

    Hello
    I'm trying to convert psd to xml and get all information from layers
    I already got all necessary  info  but for example  the radius  in rounded rectangle is in math double format but I need to have it in pixels.
    I'm using Adope photoshop file format specification but  there is no information how to convert double values to pixels,
    The same is with colors that also given in double.
    I need to know how to convert these values to actual values
    Thanks

    Hi,
    You can't do that. You have to format the numbers before you print them. Take a look at the decimal format class:
    http://java.sun.com/j2se/1.5.0/docs/api/java/text/DecimalFormat.html
    /Kaj

  • VKM4- How does the Credit Value calculated?

    Hello SD Experts,
    See below VKM4 screenshot what is the significance of credit value? How does it calculated. How can i get the calculation of credit value for a sales order? I know net value is taken from items net value minus taxes.
    This is what F1 help shows but i could not get it how it arrived to the Credit value figure.
    F1 Help
    Credit value
    Specifies the value of the open items.
    In the order, this value is
    the quantity not yet delivered
    the quantity not yet billed
    In the delivery, this value is
    the quantity not yet billed
    If anyone can explain me where can i track/see the values tied to sales order it will be great.
    Thanks
    Hrusikesh

    Dalai,
    In V/08 please check for the relevant pricing procedure, usually we assign Subtotal A for the total amount of Net value+Tax .

  • How is the date value derive from during delivery propose during VA01

    Hi,
    Please enlighten me on the following question considering that I am not in this area.
    Every time when I have create a sales order and hits enter, system will bring me to availability check screen called "Availability Control"
    In this screen, there are three section, and I have the following qeustions:
    Question u2013 How does the system come out with the date shown on the section 2 and section 3, even though I donu2019t have the stock quantity in the system at the first place.:
    Section 2: Complete Delivery
    Section 3: Delivery Proposal
    Does the calculation in config or master data setup or both, please guide me.
    Thanks
    Tuff

    Dear tuffy ,
    This is due to the configuration settings in the availability check and the master data what you are using for saless order processing.
    Fallowing lines will resolve your issues,  please find.............
    1. In material master you must have maintained in house production days in Mrp-2 view.
    2. In OVZ9 you migh not have flagged the Check with out RLT(if you activated RLT will not be done ,if you deactivate it will consider RLT).
    3. Even though the stock is not available in the plant system will confirm the quantities in end of replenishment date.
    If you don't maintain the in house production and RLT system will not confirm the quantities.
    Please check it revert if you have any further clarifications
    Thanks&Regards
    Raghu.k

  • How come the item value does not come thru via PL/SQL anonymous block?

    Hi,
    It's a Form with 3 tables -
    1) ClinicianProfileTb (with about 40 columns, insert/update via DML),
    2) PeopleTb (with about 7 columns, insert/update via PL/SQL anonymous block) and
    3) ClinicianPracticeTb (with about 10 columns, insert/update via PL/SQL anonymous block) for after-submit-processes.
    So I have several After-Submit-Processes. For some reason, it appears that PeopleId which is supposed to come thru via the 2nd After-Submit-Process (ie: Insert/Update PeopleTb) does not do the way it's supposed to. And when I press "Create" button at the bottom, I got the following error msg:
    ORA-01400: cannot insert NULL into ("TEST_0712"."CLINICIANPRACTICETB"."PEOPLEID")
    I tried the "debug" mode (via edit page link), but to no avail. (I'm newbie, trying to learn and deliver at the same time :)).
    I uploaded the app to apex.oracle.com, if someone could kindly take a look and let me know what goes wrong, it'd be greatly appreciated.
    workspace: test_0712
    app: 43408 - TEST
    user: demo
    pswd: demoPswd
    Page#21 -> look at the After-Submit-Processes -> in "Insert/Update PeopleTb" it appears that PeopeId does not come thru; thus it cannot be updated to ClinicianProfileTb.PeopleId (allows null) -> and thus cannot be inserted into ClincianPracticeTb.PeopleId (which does NOT allow null). Basically my logic is that in order to create ANY row in ClinicianPracticeTb, BOTH PracticeId AND PeopleId must be present.
    Acutally I should have used the PeopeTb as DML (as the driving table) to enforce that PeopleId must be present in order to insert ClinicianProfileTb and ClinicianPracticeTb, but it'd be lots of codes to write to insert/update in ClinicianProfileTb (40 columns).
    In addition, does ApEx consider EVERY SINGLE after-submit-process are in ONE transaction for commit/rollback? It appears that it treats all PL/SQL anonymous blocks are in ONE transaction, while Automatic Row Processing (DML) is commited/rolled back on its own?
    Thanks much,
    Helen

    All blocks that do not commit in one of the ways I detailed (and which do not explicitly commit using a commit statement) are part of the transaction started with > the first DML statement issued in any of the page processes and continuing until a commit is issued.Say, there are the following processes in the After-Submit-Processes:
    1. Process1 -> Automatic Row Processing (DML)
    2. Process2 -> PL/SQL anonymous block
    3. Process3 -> PL/SQL anonymous block
    Based on what you describe, in the event that if there is no explicit "commit" issued in any of these processes, then an implicit "commit" will be issued at the end of Process3?
    Thanks, Scott.
    Doreen

  • How to get the date value

    Hi everyone!
    I want to change the status of button(OK -> Run) after choosen the date .(ex :the textbox default value is 2009/10/14,I choose the date 2009/10/10 from the B1 calendar form)
    But after the status changed from OK -> Run,but the choosen date value doesnt change.
    Anyone can tell me how change the date value. Thanks a lot
    Code :
    If pVal.BeforeAction Then
    Else
                    If pVal.EventType = SAPbouiCOM.BoEventTypes.et_ITEM_PRESSED Then
                        Select Case pVal.ItemUID
                            Case "201"        ' date item                                                                               
    Button = form.Items.Item("3").Specific
                                    Button.Caption = "Run"
                         End Select
                    End If
    End If

    SELECT *
    FROM your_table
    WHERE date_column = to_date('25-Jan-07', 'dd-Mon-yy')Why oh why oh why are you using dates with two-digits representing the year? In my opinion, this is bad and wrong. Be explicit; use 4 digits. is your "07" representing 1907? 2007? 2107?

  • Digested value of the canonical form of xml soap body. Help!!!

    <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-168845">
    <par:getBookPP2 xmlns:par="http://parkiranje">
    <par:id_parkirno_mesto>1</par:id_parkirno_mesto>
    <par:SteviloUr>1</par:SteviloUr>
    <par:Uporabnik>Matjazz</par:Uporabnik>
    </par:getBookPP2>
    </soapenv:Body>
    The digested value of this xml part is AN7bue9ilbcfMQCsbmQ2Ci7Hvr0=
    What is the correct canonical form of this xml part in order to get this value?
    Please help!!!

    There is a very good article here - http://www.ibm.com/developerworks/library/x-c14n/ and you can get Java and C++ libraries that perform the canonicalization here - http://santuario.apache.org/ .
    P.S. I don't get that SHA-1 digest value.
    Edited by: sabre150 on Nov 8, 2008 1:48 PM

  • How is the component ID gets generated?

    Hi,
    How is the ID gets generated for ADF components. Is it generated at runtime? Do we have an algorithm which decides the ID?
    Thanks
    Shubha

    Hi,
    We are writing a wrapper on Selenium . Wrapper takes an input file with a set of "wrapper defined commands" in it. Idea is to use this script across builds.
    Command generally looks like this
         Click OK, clickButton, OK
    Here,
         CickOK --> User's description
         clickButton --> Wrapper command // which internally calls selenium commands
         OK     --> text on the button
    But there are cases in Application where one or more components will have the same text on them in different regions. We want to identify the components uniquely. One way is to go with IDs.
    We have seen few cases where IDs do not remain constant for components but we would still want to identify components with the same name is uniquely identified.
    Thanks
    Edited by: user610636 on Jul 9, 2009 9:29 AM

  • Cannot set the default value of an item in the detailed table

    Hi,
    I have Master-Detail group, both are Table formats.
    I need to set the default value of an item in the details row to the value of an item in the selected row in the Master table.
    I tried Default Display Value=#{row.MasterItem}, but it seems it is trying to access current details row instead of the Master.
    I tried #{bindings.MasterGroupColumnName.inputValue}, but it does not work.
    Any ideas
    Thanks in advance
    Mohamed

    I think I now what I'm doing differently, I had the "New Rows" JHS property of the detailed table group "empty" instead of the default "2" value.
    It seems that "Default Display Value" expression works only for the new records specified in the "New Rows" property. But when I try to "Add" new record using the "Add Row" button, the new record inserted does not have the default values generated, only has values populated for the items of the FK (in the view link) but not the ones set through the property.
    I guess in a nutshell, how I can get the details item to behave like the FK columns?
    Thanks much
    Mohamed

  • How to hide net value of $0 on Credit Memos from rejected return?

    We are creating a credit memo request with a second line item which contains rejected returns.  Basically line item 1 contains the actual qty which we are refunding and line item 2 is the qty which we will not be refunding.  When we create the the credit memo from this document in VF04, the line item two is showing on the credit memo with a net value of $0.
    Is there a way to hide this net value of $0 or rejected return items from coming over onto the credit memo.  We would like to just show positive values on the CM.
    - Chuck

    The reason for rejection is set in when the credit memo request is craeted and the net value of $0 still appears on the credit memo.. how ever the pricing values are in an unprocessed (yellow) status.
    So after running a few test when the billing block was set on the credit memo request.. I noticed that the credit memo request was still open after VF04, would appear as unprocessed, and always show up when VF04 is ran.
    Is there some other way to get the net value of $0 to NOT appear on the credit memo beyone reason for rejection and billing block.  Maybe something in the configuration copy control??

  • How can I access the Attribute Values from the Search Region

    Hi all,
    I have a table which contains Company id, department id, and PositonId. For a particular Company and Department there may be multiple records.
    I have to pupulate a table which contains the position and other details that comes under a particular Department and Position based on the selection in the Three comboBoxes.
    Also I have to populate a select many Shuttle to add new postions and records under a particular Department.
    I created a query panel *(Search Region)* for the serch and a table to display the data. That is working fine.
    Now the issue is I am using a view criteria to populate the shuttle with two bind variables ie, DepartmentId and CompanyId.
    If the serach will return a resuktant set in the table it will also pupulate the correct records, otherwise ie, if the if the serch result is empty the corresponding iterator and the attribute is setting as null.
    SO I want to access the attribute values from the Search Region itsef to populate the shuttle.
    I don't know how can I access the data from the Search Region.
    Please Help.
    Regards,
    Ranjith

    you could access the parameters entered in search region by the user as follows:
    You can get handle to the value entered by the user using queryListener method in af:query.
    You can intercept the values entered as described
    public void onQueryList(QueryEvent queryEvent) {
    // The generated QueryListener replaced by this method
    //#{bindings.ImplicitViewCriteriaQuery.processQuery}
    QueryDescriptor qdes = queryEvent.getDescriptor();
    //get the name of the QueryCriteria
    System.out.println("NAME "+qdes.getName());
    List<Criterion> searchList = qdes.getConjunctionCriterion().getCriterionList();
    for ( Criterion c : searchList) {
    if (c instanceof AttributeCriterion ) {
    AttributeCriterion a = (AttributeCriterion) c;
    a.getValues();
    for ( Object o : a.getValues()){
    System.out.println(o.toString());
    //call default Query Event
    invokeQueryEventMethodExpression("#{bindings.ImplicitViewCriteriaQuery.processQuery}",queryEvent);
    public void onQueryTable(QueryEvent queryEvent) {
    // The generated QueryListener replaced by this method
    //#{bindings.ImplicitViewCriteriaQuery.processQuery}
    QueryDescriptor qdes = queryEvent.getDescriptor();
    //get the name of the QueryCriteria
    System.out.println("NAME "+qdes.getName());
    invokeQueryEventMethodExpression("#{bindings.ImplicitViewCriteriaQuery.processQuery}",queryEvent);
    private void invokeQueryEventMethodExpression(String expression, QueryEvent queryEvent){
    FacesContext fctx = FacesContext.getCurrentInstance();
    ELContext elctx = fctx.getELContext();
    ExpressionFactory efactory = fctx.getApplication().getExpressionFactory();
    MethodExpression me = efactory.createMethodExpression(elctx,expression, Object.class, new Class[]{QueryEvent.class});
    me.invoke(elctx, new Object[]{queryEvent});
    Thanks,
    Navaneeth

  • How can i pass the Input value to the sql file in the korn shell ??

    Hi,
    How can i pass the Input value to the sql file in the korn shell ??
    I have to pass the 4 different values to the sql file and each time i pass the value it has to generate the txt file for that value like wise it has to generate the 4 files at each run.
    can any one help me out.
    Raja

    Can you please more elaberate., perhaps you should more elaberate.
    sqlplus is a program. you start it from the korn shell. when it's finished, processing control returns to the korn shell. the korn shell and sqlplus do not communicate back and forth.
    so "spool the output from .sql file to some txt file from k shell, while passing the input parameters to the sql file from korn shell" makes no sense.

  • How can I import data in to the digital word generator in Multisim?

    How can I import data in to the digital word generator in Multisim?
    I just  received this comment from a friend, a RADAR engineer, who has just down loaded Multisim.  He has been using HP/Agilent software.  He has a work around using a piecewise linear voltage waveform with data imported from Excel but this is not really a good solution.  It would also be helpful to import data from Mathcad or equivalent.
    "I thought I was about to be impressed with MultiSim but it ended only in disappointment. There is a word generator in the simulation instrument panel which can drive the DAC with a waveform and it can have thousands of lines of values. I opened Excel, wrote the formula to generate the time and voltage points for a chirp, converted to DAC values in Hex and then went back to the word generator in MultiSim to load the values only to find that you have to enter each value manually. It doesn’t even allow you to paste in a list of values from a text file. I’m not going to type 5000 values by hand. If you get the chance to give feedback to National Instruments please ask them if the paste option can be added to the word generator. MultiSim is useful in many regards, but in this case, it left me with the impression that it is considerably limited in capability compared to what I’m used to."

    Hi,
    You can load your data automatically in the Multisim word generator. Follow these steps:
    - Save your data file (in excel .xslx ir .csv format) on your computer
    - Change the extension of the file to ".dp"
    - Double-click the word generator in Multisim and click on Set...
    - In the Settings dialog box, click on Load and then Accept
    - This will prompt you to select the .dp file you have on your computer, select it and you're good to go
    However, in Multisim you have the option of creating your own custom simulation analysis and instrument.
    I will try creating the instrument and send it back to you but it might take some time.
    Multisim and LabVIEW are very powerful in test automation, with the custom instruments you create for Multisim you don't need to export your data file into excel from LabVIEW (or MathCAD or other tools) and then reload it into Multisim. The test procedure is automated instead.
    Please check this reference design about automated simulation
    http://zone.ni.com/devzone/cda/tut/p/id/7825
    Here is how you can create your own custom measurement tool in Multisim and LabVIEW, but as I mentioned, I will create the word generator and come back to you anyways
    http://zone.ni.com/devzone/cda/tut/p/id/5635
    Let me know if you have any questions.
    Mahmoud W
    National Instruments

  • How to use the updated value in the same update statement

    Hello,
    I just wonder how to use the updated new value of other column in the same udpate statement. I am using Oracle 11.2, and want to update the two columns with one update statement as following:
    create table tb_test (id number(5), tot number(5), mon_tot number(5));
    update tb_test set (tot = 15, mon_tot = tot *15) where id = 1;
    ...I would like to update both tot and mon_tot column, the value of mon_tot shall be determinted by the new value of tot.
    Thanks,
    Edited by: 939569 on 1-Feb-2013 7:00 AM

    Edit: example added
    SQL> create table tb_test
      2  ( id number(5)
      3  , tot number(5)
      4  , mon_tot number generated always as (tot*15) virtual
      5  );
    Table created.
    SQL> insert into tb_test (id, tot) values (1, 5);
    1 row created.
    SQL> select * from tb_test;
            ID        TOT    MON_TOT
             1          5         75
    1 row selected.
    SQL> update tb_test
      2  set    tot = 15
      3  where  id = 1;
    1 row updated.
    SQL> select * from tb_test;
            ID        TOT    MON_TOT
             1         15        225
    1 row selected.

  • How to use the prompted value in the filter expression

    Hi
    Is it possible to use the prompted value in the filter expression?
    My requirement is that user will be prompted for a date field and I need to filter the records such that the records are displayed for the last 5 weeks from the date entered by the user.
    If somehow I know how to use the prompted value in the filter expression then this requirement is easy to be done. If this is possible, please guide me?
    If there are other ways to acheive the desired results then please suggest.
    Thanks
    -Jaz

    Edit: example added
    SQL> create table tb_test
      2  ( id number(5)
      3  , tot number(5)
      4  , mon_tot number generated always as (tot*15) virtual
      5  );
    Table created.
    SQL> insert into tb_test (id, tot) values (1, 5);
    1 row created.
    SQL> select * from tb_test;
            ID        TOT    MON_TOT
             1          5         75
    1 row selected.
    SQL> update tb_test
      2  set    tot = 15
      3  where  id = 1;
    1 row updated.
    SQL> select * from tb_test;
            ID        TOT    MON_TOT
             1         15        225
    1 row selected.

Maybe you are looking for